2012-10-16 39 views
11

Giả sử, tôi có mạng con là 255.255.255.242 và tôi có một IP đã biết trong mạng con đó nói 192.168.1.101.Phạm vi tính toán của IP từ mặt nạ mạng con

Bây giờ cách tôi tính toán dãy IP là thế này:

Trong subnet mask, tìm octet đầu tiên mà không phải là một 255. Trong ví dụ của tôi, octet thứ 4 của nó, và nó 242. Vì vậy, hãy 256 và trừ 242, mang đến cho chúng tôi 14. Vì vậy, bây giờ chúng ta biết rằng các mạng này, các 192.168.1.x mạng, tất cả đều có một loạt các 14. Vì vậy, chỉ cần bắt đầu liệt kê chúng ...

192.168.1.0 
192.168.1.14 
192.168.1.28 
....42 
....56 
....70 
....84 
....98 
....112 

Ở đây chúng ta có thể dừng. Địa chỉ của tôi, 192.168.1.101 rơi vào mạng .98. .98 bao gồm tất cả địa chỉ ip từ 192.168.1.98 đến 192.168.1.111, bởi vì chúng tôi biết rằng 192.168.1.112 bắt đầu mạng tiếp theo.

Tôi muốn xác nhận, đây có phải là quy trình phù hợp và dễ nhất để thực hiện việc này hay không.

+0

255.255.255.242 không phải là một subnet mask hợp lệ. Không thể có khoảng trống trong các bit. – Joe

+0

ok, Bạn có thể giúp tôi với cách tính Joe –

Trả lời

31

Mặt nạ mạng là một chuỗi gồm 1 bit. Các bit phải được tuần tự mà không có 0 khoảng trống. Bất cứ thứ gì sử dụng 1 bit là một phần của mạng, mọi thứ còn lại đều hợp lệ cho việc gán máy chủ trong mạng đó. Một 255.255.255.224 có 27 "1" bit, có nghĩa là nó là một/27 mạng.

Để tính toán quyền này, bạn cần phải chuyển đổi IP thành biểu diễn dạng số. Ví dụ: 255.255.255.224 là 11111111 11111111 11111111 11100000 là 4294967264. 192.168.1.101 là 3232235877 (11000000 10101000 00000001 01100101).

Nếu bạn lấy IP và bitwise VÀ nó với mặt nạ mạng, cung cấp cho bạn địa chỉ mạng. Đây là phần cuối đáy của dãy núi này:

11111111 11111111 11111111 11100000 (mask) 
11000000 10101000 00000001 01100101 (ip) 
----------------------------------- 
11000000 10101000 00000001 01100000 = 192.168.1.96 (network address) 

Các bổ sung (Bitwise NOT) của mặt nạ cung cấp cho bạn biết kích thước của dãy núi này:

00000000 00000000 00000000 00011111 = 31 

Như vậy, phạm vi cho IP mà là giữa 192,168 .1.96 - 192.168.1.127. (127 = 96 + 31)

+1

tuyệt vời, rõ ràng như pha lê. Cảm ơn Joe. –

+0

chi tiết đáng kinh ngạc, cảm ơn rất nhiều. Nhưng tôi tự hỏi nếu có một sai lầm: .96 đến .127 làm cho 32 yếu tố nếu tôi không lầm. Vậy là .127 hoặc .126? – dvkch

+0

Bạn nói đúng, vì toán học dựa trên 0. Có 32 địa chỉ hợp lệ trong phạm vi, nhưng 0 là một trong số chúng, vì vậy giới hạn trên là (n + 31). – Joe

0

Nhờ cả hai bạn Joe và dig_123 nhưng câu trả lời của Joe có thể đã được làm rõ với một/28 subnetinstead của phù thủy/27 đã được gần gũi hơn với ví dụ của mình và rơi giữa 92- 112.

vì vậy, Joe nếu tôi nhận được quan điểm của bạn đúng, bạn đang nói rằng bạn lấy octet phụ được đánh dấu; xác định giá trị bit gia tăng và thêm nó vào giá trị mạng con trong octet SN, điều này sẽ cung cấp cho phạm vi và cung cấp các giá trị cho Mạng, máy chủ lưu trữ đầu tiên, máy chủ cuối cùng và địa chỉ quảng bá. Đúng không? ví dụ trong octet thứ 4 của tôi sẽ là 240 và gia số sẽ là 16. Vì giá trị trong octet thứ 4 là 96, nó nằm trong phạm vi được tính cho số tăng 16 bit, trên thực tế nó rơi từ 96 đến 112 một trong các bit 16 dao động vì vậy chúng tôi có thể kết luận rằng địa chỉ mạng của chúng tôi cho ví dụ này là:

0-15 
15-31 
32-47 
48-63 
64-79 
80-95 
96-111 
112-127 
128 
NW 192.168.1.96 /28 
1st 192.168.1.97 /28 
Last 192.168.1.110 /28 
Bcast 192.168.1.111 /28 
+1

"_... bạn lấy octet subnetted ..._" Không. Octets không có gì để làm với subnetting. Ký hiệu chấm thập phân chỉ đơn giản là giúp người đọc dễ dàng hơn. Địa chỉ IPv4 chỉ đơn giản là các số nguyên 32 bit. Bạn thực sự cần phải làm subnetting trong nhị phân, sau đó tất cả mọi thứ có ý nghĩa và dễ dàng để xem. Quên về các octet khi nói đến subnetting, nếu không bạn đang đặt mình lên cho thất bại. –

0

để thêm một cái gì đó để câu trả lời của Joe: nếu bạn muốn thực hiện các tác lập trình hơn (giả định kiến ​​thức về toán tử Bitwise).

Bạn đã biết rằng chỉ số cuối cùng sẽ thay đổi, nhưng phương pháp này có thể được sử dụng theo cách hơi khác so với các trường hợp khác như tôi hiển thị sau.

Number from mask: 224 
Number from IP: 101 

Sử dụng ví dụ:python hoặc chương trình máy tính yêu thích của bạn:

  • Start address byte: 224 & 101 = 96
  • End address byte: (~224 & 255) | 96 = 127

(~224 & 255) chỉ đặt một mỗi bit mà không phải là một trong 244 (có nghĩa là, 5 bit cuối cùng); HOẶC kết quả với 96 chỉ sao chép 3 bit đầu tiên từ địa chỉ đầu tiên.

Vì vậy, kết quả là dự kiến: 192.168.1. - 192.168.1. .


Nếu mặt nạ kết thúc trước số cuối cùng có quy trình tương tự; chúng ta hãy làm một ví dụ:

Hãy sử dụng 255. .0.0 như mặt nạ, và cùng địa chỉ IP (192. .1.101).

Một lần nữa chỉ có một số để chăm sóc, mà bây giờ là một trong vị trí thứ hai: 168.

  • Start address byte: 224 & 168 = 160
  • End address byte: (~224 & 255) | 160 = 191

Bây giờ, số bên trái (vị trí đầu tiên) vẫn giữ nguyên (192) và phần còn lại của các số nằm trong khoảng từ 0 đến 255 (tùy thuộc vào yêu cầu của chúng, nó cũng có thể từ 1 đến 254).

Vì vậy, các giải pháp sẽ là: 192. .0.0 - 192. .255.255