2009-12-09 76 views
2

如果我有一個私有IP地址塊,如171.58.0.0/12,這是否意味着我本質上是按位AND與32位版本的171.58.0.0與32位1,其中最後12位是0' d出來,以獲得該範圍內可接受的私人IP地址的最長前綴?如何解釋IP地址塊?

10101011.00111010.00000000.00000000 (171.58.0.0) AND 
11111111.11111111.11110000.00000000 (12 bit mask?) 

= 

10101011.00111010.00000000.00000000 (Longest Prefix of Private IP addresses) 

獲取前綴可接受的私有IP地址?

謝謝!

+0

能否請您檢查您所談論的網絡分配? – 2009-12-09 09:11:16

回答

7

你創建一個32位的數字,它的高12位設置爲1,然後將它與給定的IP地址進行比較,並獲得網絡地址。除了保留的所有零(網絡地址本身)和全1(廣播地址)之外,其餘位可用於主機地址。在你的情況將是:

171.58.0.0 = network 
171.58.0.1 to 171.58.15.254 = hosts 
171.58.15.255 = broadcast 

編輯。請參閱Tony van der Peet的答案,因爲它爲我的答案增加了有價值的信息。

+0

廣播地址不必是全1地址。雖然它幾乎總是,並且可能已經標準化了。在Linux上,廣播地址可以與網絡掩碼分開配置。 – 2009-12-09 08:23:30

+0

也許我很困惑,但也許你指的是*多播*地址(我不知道,無論如何)。 – Konamiman 2009-12-09 08:27:17

+1

過去,所有0和廣播地址的全1都已被允許。現在所有1都是更標準的,我相信有一個MIB變量可以控制0或1。我相當確信,所有0作爲地址是爲了避免與舊標準衝突而保留的。當然在/ 31或/ 32網絡中沒有廣播地址! – 2009-12-09 08:57:40

1
+0

我被拒絕了什麼?爲了說提問者是對的,即使我沒有檢查他的數字?我注意到他顛倒了通常慣例的位掩碼,但這是找到網絡地址的正確方法。這就是爲什麼我將這些符號鏈接到一些文檔。 – 2009-12-09 18:51:35

+0

我沒有投票給你。我沒有檢查過參考文獻,但它們都看起來很有用,所以猜猜看,我會給你投票。 – 2009-12-09 20:49:01

+0

與我當天的最後一票不會少於。 – 2009-12-09 20:49:57

2

@Konamiman - 你的答案是(+1)幾乎現貨,但我無法避免的,因爲問題的奇怪的東西回答。

首先,我想強調一下,OP得到12位反轉,/ 12表示12位左邊的1,而不是右邊的12位。

其次,二進制中的171.58.0.0/12是10101011.00111010.00000000.00000000(與OP狀態一樣),其掩碼爲11111111.11110000.00000000.00000000,這意味着在地址的主機地址部分有非零位。據我所知,這不是表達地址的的方法,即使它是該子網中的有效單個地址。

更明智的是,您可以將其表示爲171.48.0.0/12(這是否是一個錯字?),這意味着主機部分全部爲零。 171.58.0.0的最小有效網絡掩碼爲/ 15。編輯:看看這個IP addressing guide。它有點過時了,因爲它引用了A,B,C類,但是對於網絡掩碼來說是一個有用的備忘單。

+0

哎呀,我沒有注意到位反轉。我只是依靠他提供的示例二進制表示。 – Konamiman 2009-12-09 09:06:26

+0

感謝您的澄清。我在地址的主機地址部分有非零的位,因爲這個例子是人爲的......我只是編了數字:) – ash 2009-12-09 09:07:29

+0

什麼叫!我們都不能看見樹木。 – 2009-12-09 09:12:11

0

假設這是基於CIDR,maybe`

Mask:255.240.0.0  Host/Net - 1048574 
Network   Broadcast 
171.48.0.0  171.63.255.255