nmap 查找 LAN 中所有活动的主机名和 IP

şal*_*oma 95 nmap

如何发出nmap命令来显示我连接的 LAN 中所有活动机器的IP地址和相应的主机名?(如果这可以通过另一种方式/工具完成,您肯定欢迎回答)

Che*_*ron 103

低于 5.30BETA1 的 nmap 版本:

nmap -sP 192.168.1.*
Run Code Online (Sandbox Code Playgroud)

较新的 nmap 版本:

nmap -sn 192.168.1.*
Run Code Online (Sandbox Code Playgroud)

这为我提供了主机名和 IP 地址,并且只 ping 主机以发现它们。这只会让你的主机名,如果你运行它root

编辑:截至Nmap 5.30BETA1 [2010-03-29] -sP已被替换-sn为首选方式进行 ping 扫描,同时跳过端口扫描,就像注释所示:

以前推荐使用 -PN 和 -sP 选项。这为某些禁用扫描阶段的选项建立了更常规的语法:

  • -n 无反向 DNS
  • -Pn 无主机发现
  • -sn 不扫描端口

  • @MattSimmons 如果 nmap 以 root 身份运行并且 IP 来自本地网络(服务器是子网的成员),则发送 ARP 请求。所以它*会*检测任何活着的机器,因为没有人真正阻止 ARP 数据包。哦,对于新的 `nmap` 版本,它是 `-sn`(尽管 `-sP` 也可以工作)。 (14认同)
  • +1 需要注意的是,这只会返回响应 ICMP 的机器。任何专门阻止 ICMP 的机器都不会出现 (7认同)
  • 我没有用这个命令得到任何主机名。建议? (6认同)
  • @Cheesebaron 啊。就是这样。我建议添加它,因为没有它,它不会显示主机名。 (6认同)

Dav*_*osh 9

nmap -sP 192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

请注意,名称解析仅与反向 dns 人口一样好。另请注意,这不会使您的系统受到 ping 防火墙的影响(实际上每个 Windows 工作站都是默认设置)。

如果您在系统本地(即在同一子网中),您可以执行以下操作

for i in `seq 1 254` ; do arping -c 1 192.168.1.$i | grep reply ; done
Run Code Online (Sandbox Code Playgroud)

...但有时当我将 arping 环绕在一个循环中时,我会遇到奇怪的事情。您还必须自己进行查找,例如

dig +short -x $IP
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以扫描整个子网,也可以使用通配符。

nmap 192.168.8.*
Run Code Online (Sandbox Code Playgroud)

或者

nmap 192.168.8.1/24
Run Code Online (Sandbox Code Playgroud)