最近在开发中遇到了一个问题,pc用手机连的同一个wifi,但手机无法访问pc上启动的本地前端服务;
这里是pc端的ip信息;
这是手机的ip;
pc端的ip地址为 192.168.1.120 子网掩码:255.255.255.0
手机的ip为 192.168.0.228 子网掩码:255.255.0.0
可以看出ip和子网掩码都存在差异;之前一直都认为要前ip三位相同就属于同一网段,真相不是这样的。 通过查找资料发现判断是否属于同一网段的方法如下;就拿上面的两个ip信息举例吧。
A
IP: 192.168.1.120
子网掩码:255.255.255.0
B
IP: 192.168.0.228
子网掩码:255.255.0.0
将两者4段对位做与运算1=(&),得到网络标识,
相同做法,将另一个ip也做这样的操作,得到另一个网络标识,若两个网络标识是相等的,那么,这两个ip就属于同一个网段的ip,否则不是同网段。与运算后(1与1=1,1与0=0,0与0=0)
A
IP: 192.168.1.120
子网掩码:255.255.255.0
IP: 11000000.10101000.00000001.01111000
ym:111111111.11111111.11111111.00000000
&: 11000000.10101000.00000001.00000000
B
IP: 192.168.0.228
子网掩码:255.255.0.0
IP: 11000000.10101000.00000000.11100100
ym:111111111.11111111.00000000.00000000
&: 11000000.10101000.00000000.00000000
A&: 11000000.10101000.00000001.00000000 =》192.168.1.0
B&: 11000000.10101000.00000000.00000000 =》192.168.0.0
通过对比 连个结果很容易得出结论A与B不属于同一网段;