假设路由器的 IP 为 192.168.0.1,连接到此路由器的台式计算机的 IP 为 192.168.0.2。此 IP 是通过 dhcp 分配给台式计算机的。我可以访问路由器,并可以查看 dhcp 租约列表。
现在假设有人将一台新计算机连接到路由器。此新系统已禁用 dhcp,并在操作系统中为其分配了静态 ip 192.168.0.3。
无论是从路由器还是桌面,我如何发现这台新机器已连接到网络?(假设 icmp 被禁用并且新系统没有开放端口)
答案1
该机器将向它想要与之通信的设备(特别是本地网关)发送 ARP 查询 - 您可以使用 Wireshark 或 tcpdump 捕获它们。
这些设备也会执行 ARP 以传递响应,并且机器的 MAC 地址和 IP 地址将显示在其邻居缓存(ARP 缓存)中。本地网关的 ARP 缓存通常会包含子网内几乎所有的设备(尽管不一定同时包含所有设备)。使用ip neigh
或arp -a -n
列出它;许多路由器会在某处有某种形式的“ARP 表”。IPv6 NDP 也有类似的邻居缓存。
如果机器本身保持完全安静,您可以使用网络扫描仪向子网中的每个可能地址发送 ARP 探测。(扫描 IPv4 /24 需要几次眨眼。)有很多这样的工具,但 nmap 是我唯一记得的。
arping
如果 IP 地址已知,还可以进行定向 ARP 查询 - 它类似于 ping,但针对的是 ARP。(IPv6 等效项可能是ndisc6
。)