判断ip地址是否在同一网段

    xiaoxiao2025-05-30  102

    怎么判断IP地址的是否在同一网段。

    相信好多人都认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我想把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。

    192.168.0.1

    11000000.10101000.00000000.00000001

    (这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。)

    IP    11000000.10101000.00000000.00000001

    子网掩码  11111111.11111111.11111111.00000000

    在这里,向大家说一下到底怎么样才算同一网段。

    要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?

    各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。

    算法只要把IP和子网掩码的每位数AND就可以了。

    AND方法:0和1=0 0和0=0 1和1=1

    如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位

    IP      11000000.10101000.00000000.00000001

    子网掩码    11111111.11111111.11111111.00000000

    得出AND结果  11000000.10101000.00000000.00000000

    转换为十进制192.168.0.0,这就是网络标识,

    再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP:192.168.0.1 AND

    得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,

    这0.0.0.1就是主机标识。

     

    要想在同一网段,必需做到网络标识一样。

     

      我们再来看看这个改为默认子网掩码的B类IP

    如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?

    先将这些转换成二进制

    188.188.0.111 10111100.10111100.00000000.01101111

    188.188.5.222 10111100.10111100.00000101.11011010

    255.255.254.0 11111111.11111111.11111110.00000000

    分别AND,得

    10111100.10111100.00000000.00000000

    10111100.10111100.00000100.00000000

    网络标识不一样,即不在同一网段。

     

     

     

    这里所说的网络标识也就是子网

    最新回复(0)