请教如何判断两个ip是否在同一网段?

yyouyou 2010-03-18 08:11:08
在一个局域网中,两台电脑A,B,用交换机连接,其中
A:192.168.1.100/16
B192.168.2.100/24
按规则,A的网段应该是192.168.0.0,B的网段是192.168.2.0,因此A,B不在同一网段,不能直接通信。
但是,如果A要发消息给B(如ping),那么A首先看B的IP地址192.168.2.100,然后用子网掩码255.255.0.0进行判断,结果发现B与自己在一个网段。
反过来,B给A发消息,B的判断是A与自己不在同一个网段,
请教,A,B到底是如何判断它们在不在同一网段啊?

A能ping通B吗?
B能ping通A吗?

求高手指点!谢谢了
...全文
1557 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
winbsd 2010-04-08
网关,路由表,根据这个判断啊!
回复
hp6220 2010-04-07
根本不在一个网段里
回复
nnhlx 2010-04-02
要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。

A ping B: A自己算得的子网是192.168.0.0,A也认为B的掩码是255.255.0.0,所以给B算得的子网是
192.168.0.0,两者一样,即认为在同一网段。所以当A发ping包给B时,B也确实收到A的
ping请求包,可道理同下,B的ping回复包是不能返回给A的,所以A ping B显示request
timed out

B ping A: B自己算得的子网是192.168.2.0,B也认为A的掩码是255.255.255.0,所以给A算得的子网是
192.168.1.0,两者不在同一网段,所以B ping A的结果是Unreachable!

回复
contrltiger 2010-03-28
换成二进制 看他们前面的指定的几位是否相同
回复
lxrxyz 2010-03-28
不能通。
A:192.168.2.99/16
B192.168.2.100/24
这样就可以通。
判断是否同一子网就看网络号和掩码。
判断能不能通看广播包是否互相可达。
回复
维博 2010-03-27
要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网。
例:假定选择了子网掩码255.255.254.0,现在分别将上述两个IP地址分别与掩码做与运算,如下图所示:
211.95.165.24 11010011 01011111 10100101 00011000
255.255.254.0 11111111 11111111 111111110 00000000
与的结果是: 11010011 01011111 10100100 00000000

211.95.164.78 11010011 01011111 10100100 01001110
255.255.254.0 11111111 11111111 111111110 00000000
与的结果是: 11010011 01011111 10100100 00000000

可以看出,得到的结果(这个结果就是网络地址)都是一样的,因此可以判断这两个IP地址在同一个子网。
回复
eagle109 2010-03-25
你试试就可以知道可不可以Ping通了

你的方法是对的,这样通常是由网关转发
如你ping www.baidu.com发出去的ICMP包,目的MAC是你的网关而不是Baidu服务器的MAC
回复
发动态
发帖子
通信技术
创建于2007-08-27

3954

社区成员

通信技术相关讨论
申请成为版主
社区公告
暂无公告