我注意到运行nmap 192.168.0.*
会列出连接到我的无线 AP 的所有设备(我的 Android 手机除外),但是如果我对Ping
其中任何一个进行操作,它们都会连接,我只是想知道发生这种情况的原因是什么。
答案1
正如 @cremefraiche 在评论中指出的那样,Nmap 的主机发现阶段(有时称为“ping 扫描”)与 ICMP 回显请求(实用程序使用的)不同ping
。在某些情况下(对不同子网中的目标具有 root 权限),会使用 ICMP 回显请求,但永远不会对与扫描仪位于同一 AP 上的目标使用该请求,除非您明确使用该--disable-arp-ping
选项。
出于稍后将要说明的原因,我猜您没有使用 root ( sudo
) 权限运行此扫描。在这种情况下,Nmap 的主机发现是通过尝试连接到 TCP 端口 80 和 443 来实现的;如果其中任何一个被拒绝或接受,则认为主机处于“启动”状态。如果连接超时(在防火墙系统中可能会发生这种情况),则主机被标记为“关闭”。
如果你是使用 root 权限运行时,Nmap 会发送 ARP 请求来确定目标 IP 的 MAC 地址。回答这种请求是一种要求连接到以太网或无线局域网,因此几乎可以保证正常工作。如果您正在使用sudo
但仍然没有得到响应,那么您可能应该向 Nmap 项目提交错误报告([电子邮件保护])。
答案2
好吧,我认为这不是你该问的地方,但是,我会回答你。如果你使用 -Pn,它会将所有主机视为在线。每次主机关闭时,我都会使用 -Pn。示例:
nmap -Pn 192.168.1.*
(抱歉我的英语不好)