Nmap:从范围中find免费的IP

有没有办法在networking上扫描免费的IP? 我使用nmap -sP 192.168.1.0/24但是这实际上显示了主机。

    像这样使用Nmap是一个相当准确的方法来做你所问的,只要有一些先决条件是正确的:

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

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

     sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}' 

    使用的Nmap选项摘要:

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

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

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

    不知道有关n-map,但可以合理地假设,如果你写一个ping脚本,发送1 ping到每个地址,任何回来的“目的地不可达”的主机是空置的,什么回来“请求超时”被占用,但不响应ping。 两个响应之间的区别是“目的地不可达”没有收到对其请求的响应。 “请求超时”是指响应ARP请求的东西,而不是ICMP数据包。

    这里是PowerShell中的相同的东西….

     ((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}