Nmap:从范围内查找免费 IP

HTF*_*HTF 18 nmap

有没有办法扫描网络上的免费IP?我使用,nmap -sP 192.168.1.0/24但这实际上显示了已启动的主机。

bon*_*ing 31

像这样使用 Nmap 是一种相当准确的方式来完成您的要求,前提是某些前提条件为真:

  1. 您必须以 root(或 Windows 上的管理员)身份运行扫描才能发送 ARP 请求,而不是 TCP 连接。否则,当它只是被防火墙设置时,扫描可能会将地址报告为“关闭”。
  2. 您只能从与您正在扫描的地址范围相同的数据链路(第 2 层)上的系统执行此操作。否则,Nmap 将需要使用可以被防火墙阻止的网络层探测器。

为了获得“可用”地址,您需要获得 Nmap 报告为“关闭”的地址列表。你可以用一个简单的 awk 命令来做到这一点:

sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'
Run Code Online (Sandbox Code Playgroud)

使用的 Nmap 选项摘要:

  • 当您使用该-v选项时,除了“向上”的地址外,Nmap 还会将它找到的地址打印为“向下”。
  • 取而代之的是-sP,我替换了较新的拼写-sn,它仍然完成相同的扫描,但意味着“跳过端口扫描”而不是误导性的“Ping 扫描”(因为主机发现阶段并不一定意味着 ICMP Echo 扫描或 Ping )。
  • -n选项会跳过反向 DNS 查找,这会为您节省一些时间,因为您对名称不感兴趣,而只对 IP 地址感兴趣。
  • -oG选项告诉 Nmap 输出grepable格式,这样 awk 更容易处理。参数“ -”告诉它将此输出发送到标准输出。

然后 awk 命令搜索“Status: Down”并打印包含 IP 地址的第二个字段。

当然,如果您有权访问交换机的运行配置或 DHCP 服务器的租用,您可以更权威地获得此答案,而无需进行可能引发安全警报的扫描。