2011-08-11 27 views

答えて

4

/24は、アドレスのネットワーク部分を構成するビットの数を表します。この場合、24(または30)です。

最小のネットワーク部分のみを使用してIPアドレスをANDする場合、同一のネットワークには同じ値が含まれます。例えば

は、ここではCの実装(未テスト)である:

unsigned int ip1 = (192<<24) | (168<<16) | (0<<8) | (1); 
unsigned int ip2 = (192<<24) | (168<<16) | (0<<8) | (2); 
unsigned int nm1 = (-1) << (32 - 24); 
ip1 &= nm1; // Note: we use nm1 as its the smallest number of bits in the network 
ip2 &= nm1; 
if (ip1 == ip2) { } // Same network 

は技術的には、あなたの/ 30および/ 24は異なるネットワークあり、そして異なるアドレス(すなわち、到達するためにルータを使用します。/24はIPの1-254にルータを使用しませんが、/ 30はこれらのアドレスのほとんどにルータを使用します)。ただし、同じアドレス空間で重複します。

+0

答えていただきありがとうございます。つまり、(ip1&subnet1の結果)==(ip2&subnet2の結果)なら、最終結果はsubnet1 == subnet2であってもOKです。私は正しい? – danspeed

関連する問題