我希望知道与已知 IP 地址关联的计算机名称。DNS 由我的路由器 (WIND3 webcube) 管理,我可以使用浏览器 (http://192.168.1.1) 尽管如此,我希望通过控制台中的命令行读取 LAN 计算机名称。我按照 Bodo 的建议尝试了 <ping -r 192.168.1.255> 然后 <arp -a>;这显示了 LAN 上除我自己的之外的所有 IP 和相关 MAC;显示的唯一主机名是与 192.168.1.1 对应的路由器名称 - 一半的问题已经得到解答,现在我有一种通过控制台发现 LAN 上的远程 IP 的方法。此外,使用 <nmap -sn 192.168.1.0/24>,我可以看到 LAN 上的完整 IP 列表,但仍然没有主机名。
目前最好的解决方案是运行此脚本:
for x in {101..110}
do nslookup 192.168.1.$x | grep name
done
显示所有活跃名称和相关 IP(反向)
答案1
解决方法(使用 ping、arp 表和扫描)应该可以在大多数网络中工作,但可能不会报告所有设备(报告仅有的那些回应 ping 的设备)。
拥有ping
和arp
ping
(短暂的片刻)广播 IP 地址(即子网中最高、最后且不可用的 IP 地址,例如192.168.1.255
) 反过来会导致 ping 数据包被发送到网络上每个可能的 IP 地址,如下所示:
ping -b 192.168.1.255
然后,运行arp
(地址解析协议) 请求如下:
arp -a
和nmap
从man nmap
:
-sn (No port scan)
This option tells Nmap not to do a port scan after host discovery,
and only print out the available hosts that responded to the host
discovery probes. This is often known as a “ping scan”.
因此,您可以在网络上像这样使用它:
nmap -sn 192.168.1.0/24
在哪里192.168.1.0
(第一个不可用的 IP 地址,即0
) 是您的网络地址,24
是您的子网掩码。
答案2
要从路由器获取单个已知 IP 地址的名称,您可以使用
dig @router -x ipaddress +short
例如
dig @192.168.1.1 -x 192.168.1.100 +short
看男人挖
我无法使用dig
的查询类型axfr
或nslookup
的ls
命令从我的路由器获取完整列表。这可能是权限问题。
当然,您可以使用 shell 编程来dig
循环运行一系列 IP 地址。