4
쉬운 질문으로 인해 종종 두 가지 IP (v4) 주소 192.168.0.1/30 및 192.168.0.2/24가 있습니다. 같은 네트워크 세그먼트.두 개의 IP 주소가 동일한 네트워크 세그먼트에 속하는지 확인하는 방법
어떻게 결정합니까?
쉬운 질문으로 인해 종종 두 가지 IP (v4) 주소 192.168.0.1/30 및 192.168.0.2/24가 있습니다. 같은 네트워크 세그먼트.두 개의 IP 주소가 동일한 네트워크 세그먼트에 속하는지 확인하는 방법
어떻게 결정합니까?
/24
은 주소의 네트워크 부분을 구성하는 비트 수를 나타내며이 경우 24 (또는 30)입니다.
가장 작은 네트워크 부분 만 IP 주소와 AND하면 동일한 네트워크에 동일한 값이 포함됩니다./30/24 서로 다른 네트워크이 있으며, 즉 (다른 주소에 도달하기 위해 라우터를 사용하여,
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
기술적 :
는 예를 들어, 여기 (안된)는 C 구현입니다/24는 IP의 1-254에 라우터를 사용하지 않지만/30은 해당 주소의 대부분에 대해 라우터를 사용합니다). 그러나 동일한 주소 공간에서 중복됩니다.
답장을 보내 주셔서 감사합니다. 즉, (ip1 & subnet1의 결과) == (ip2 & subnet2의 결과)이면 subnet1 == subnet2이든 관계없이 최종 결과는 OK입니다. 내가 맞습니까? – danspeed