我正在编写一个 Reachability 类,用于测试 IP 地址是否有效且可用。我编写了一个单元测试来测试我的类是否正常工作,然后就发生了这种情况。我用 IP 地址 192.168.1.255 进行了测试,我认为该地址在我的网络中无法访问,但我得到的结果是 IsReachable = true。嗯...这怎么可能呢?
好的,我有一个基准。我可以使用 Windows 自带的“ping”应用程序。这是该测试的结果
# ping 192.168.1.255
Pinging 192.168.1.255 with 32 bytes of data:
Reply from 192.168.1.200: bytes=32 time<1ms TTL=64
Reply from 192.168.1.200: bytes=32 time<1ms TTL=64
Reply from 192.168.1.200: bytes=32 time<1ms TTL=64
Reply from 192.168.1.200: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.1.255:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
变得更加奇怪
# ping 192.168.1.253
Pinging 192.168.1.253 with 32 bytes of data:
Reply from 192.168.1.27: Destination host unreachable.
Reply from 192.168.1.25: Destination host unreachable.
Reply from 137.224.244.1: Destination net unreachable.
Reply from 137.224.244.1: Destination net unreachable.
Ping statistics for 192.168.1.253:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
这是怎么回事?有人能向我解释一下这个结果意味着什么吗?
编辑添加 IPCONFIG
ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : DESKTOP-CB16LLI
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : wurnet.nl
home
Ethernet adapter Ethernet 3:
Connection-specific DNS Suffix . : wurnet.nl
Description . . . . . . . . . . . : NCP Secure Client Virtual NDIS6 Adapter
Physical Address. . . . . . . . . : 02-00-AD-4F-70-18
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 137.224.245.97(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : vrijdag 30 maart 2018 08:20:26
Lease Expires . . . . . . . . . . : donderdag 17 mei 2018 21:25:51
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 137.224.245.98
DNS Servers . . . . . . . . . . . : 10.90.3.31
10.91.3.31
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Ethernet 1:
Connection-specific DNS Suffix . : home
Description . . . . . . . . . . . : Surface Ethernet Adapter
Physical Address. . . . . . . . . : C4-9D-ED-E8-5D-1E
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 192.168.1.27(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : vrijdag 30 maart 2018 08:12:39
Lease Expires . . . . . . . . . . : zaterdag 31 maart 2018 08:12:50
Default Gateway . . . . . . . . . : 192.168.1.254
DHCP Server . . . . . . . . . . . : 192.168.1.254
DNS Servers . . . . . . . . . . . : 192.168.1.254
NetBIOS over Tcpip. . . . . . . . : Enabled
Wireless LAN adapter Local Area Connection* 1:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter
Physical Address. . . . . . . . . : BE-83-85-E7-C5-48
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Ethernet adapter Bluetooth Network Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
Physical Address. . . . . . . . . : BC-83-85-E7-C4-4A
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . : home
Description . . . . . . . . . . . : Marvell AVASTAR Wireless-AC Network Controller
Physical Address. . . . . . . . . : BC-83-85-E7-C4-49
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::49ca:6fd:8fa4:a099%3(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.1.25(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : vrijdag 30 maart 2018 08:12:49
Lease Expires . . . . . . . . . . : zaterdag 31 maart 2018 08:13:08
Default Gateway . . . . . . . . . : 192.168.1.254
DHCP Server . . . . . . . . . . . : 192.168.1.254
DHCPv6 IAID . . . . . . . . . . . : 79463301
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-22-4C-14-89-C4-9D-ED-E8-5D-1E
DNS Servers . . . . . . . . . . . : fe80::2aff:3eff:fe3d:f5%3
192.168.1.254
NetBIOS over Tcpip. . . . . . . . : Enabled
Tunnel adapter Local Area Connection* 11:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Teredo Tunneling Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
编辑 以上 ping 是在 VPN 连接打开的情况下进行的。以下是在 VPN 连接关闭的情况下进行的
ping 192.168.1.253
Pinging 192.168.1.253 with 32 bytes of data:
Reply from 192.168.1.27: Destination host unreachable.
Reply from 192.168.1.27: Destination host unreachable.
Reply from 192.168.1.27: Destination host unreachable.
Reply from 192.168.1.27: Destination host unreachable.
答案1
0
并且255
不是 255.255.255.0 子网中机器的有效地址。
255 是“广播”地址,0 是“网络地址”。
相关阅读为什么 IP 地址不能以 0 或 255 开头?。答案解决了宽 IP 地址的广泛情况,但该规则也适用于子网地址,因此对于 255.255.255.0 子网,第一个和最后一个 IP 是保留的。
关于 ping .253
... 在您的第一次 ping 中,它本质上是询问它拥有的每个网络适配器是否有到主机的路由。
在其中两起案件中,他们做出了答复Destination host unreachable.
,基本上是说“如果它在这里,我们会通知你,但由于某种原因无法联系到它”
更奇怪的是 VPN 网络网关,它Destination net unreachable.
在这种情况下说由于子网划分和其他因素,它完全无法与之通信任何该网络上的机器。
您的最终 ping 看起来与我预期的一样。您的本地网络适配器只是告诉您地址无法访问。
答案2
ICMP 协议直接在 IPv4 上运行(在本例中)。它具有与单播 UDP 或 TCP 不同的路由规则。基本上任何看到 ICMP 数据包的主机都可以应答(甚至撒谎)。
因此,您在接收的数据包数中看到的不仅仅是目的地的回复。