我发现如果我 ping 我的广播 IP 地址,我会收到所有连接到该设备的响应。
我想知道是否有一个命令(unix)能够获取给定主机的一些信息(名称、品牌等),以便我可以轻松确定哪个 IP 地址对应哪个设备。
答案1
假设您没有为本地网络设置 DNS,最好的选择可能是使用 NMap,它可以(取决于您传递它的交换机、主机的设置方式以及您的运气)告诉您 NIC 供应商和 MAC 地址、每个主机上运行的服务,甚至可能是这些服务的版本以及系统正在运行的操作系统。
我为此要使用的特定命令是:
nmap -PR -sS -sU -sV -O -T4 192.168.0.0/16
192.168.0.0/16
用适合您网络的 CIDR进行替换。
具体选项如下:
-PR
:使用 ARP 请求而不是 ICMP ECHO_REQUEST 来确定哪些设备在线。这是一项轻微的性能优化(无论如何您都需要发送 ARP 请求),并且还会正确检测阻止 ICMP ECHO_REQUEST 的主机是否在线。-sS
:这将执行 NMap 默认使用的标准 TCP SYN 扫描。-sU
:与类似-sS
,但用于UDP而不是TCP。-sV
:启用版本检测。这会增加扫描时间,因此如果您不需要此信息来弄清楚是什么,您可以放心地将其排除。-O
:启用操作系统检测。这将使用时间信息和其他扫描的数据来尝试找出系统正在运行的操作系统。只要远程系统有几个 TCP 和 UDP 端口打开,它实际上就相当准确。-T4
:这会大大加快扫描速度,但会增加网络负载。-T5
将会更快,但除非网络上的所有设备都处于空闲状态,否则扫描将无法可靠地进行。
如果您需要更多信息,我建议您查看 nmap 文档,它非常详尽,可能是最详尽的开源项目之一。