有没有办法find连接在同一个局域网中的机器的IP地址?
既然你在同一个LAN上,你可以检查你的机器ARP表。 如果机器没有出现,你可以ping你的广播地址,让所有的机器回应你。
在Windows上,您正在查找的命令是arp -a
(在nix上,您只需键入arp
)
如果机器在另一个子网上,则必须有权访问第3层设备(路由器,L3交换机,防火墙),您可以在那里查看arp表。
如问如何ping您的广播地址:
首先你需要弄清楚你的广播地址。 与/ 8/16/24地址这是相当容易的。 我将使用/ 24作为这个例子。
build立:
IP: 192.168.2.150 NETMASK: 255.255.255.0
您的广播地址是您子网中的最后一个IP。 (有关子网划分的更多信息,埃文·安德森(Evan Anderson)写了一篇很棒的文章 。
在我的情况下,我的广播地址是192.168.2.255。 所以我会做ping 192.168.2.255
ping我的广播地址。 这基本上是要求networking上的所有机器通过ICMP回声与您通话。 要做到这一点你的机器需要获得MAC地址,所以它发送和ARP请求到networking上的所有机器,他们都回复他们的MAC地址。 然后你的机器在它的arp表中有他们的MAC – > IP映射。
对于Windows系统,有一个称为mac扫描仪的免费工具。
Ping广播地址并不总是保证响应。 根据我的经验,只有打印机软件才会回复ping通。
你所需要的实际上叫Reverse-Arp,但它已被BOOTP所取代。 但是我不能猜测BOOTP如何帮助你得到答案。
像LLDP和CDP这样的第2层发现协议应该有所帮助,但它们不是在查询/响应模型上运行,而是依靠发送周期性信标。 如果您确定您的局域网只包含Windows 7个人电脑,您可以监听LLDP数据包并过滤出有趣的数据。
但对我来说,最简单的方法似乎是Netbios。 Netbios查询返回详细信息,其中包括接口IP和Mac地址的详细信息。 我会使用一个工具,如nbtscan和grep的MAC地址
nbtscan 192.168.1.0/24 | findstr "00:11:22"
如果没有防火墙,可以跨子网查询这个附加优点。