我有一个简单的方法,我在四个子网上使用它来确定哪些已注册的 IP 实际启动并处于活动状态,哪些可以删除。
最初,我使用以下命令遍历域名列表:
sudo nmap -sS -O -v oN $filename $name
$filename
是我对该 IP 的输出文件$name
,是读入的域名。
从该命令中,对于报告“主机关闭”的所有 IP,我运行以下命令:
sudo nmap -Pn -sS -O -v -oN $filename $name
请注意,这里唯一的区别是我现在假设主机已启动,只是为了看看会返回什么。
然而,在我迄今为止看到的所有情况下,所有被扫描的端口都被过滤了,并且由于主机被假定为启动,我没有办法验证它在第二次扫描后实际上是启动的正在运行。
还有其他想法吗?
1)希望您不需要被动地收集这些信息。
您可以使用 tcpdump、wireshark、防火墙日志记录等工具来监听流量……随着时间的推移,在系统传输数据或以其他方式执行其操作时收集信息。
2)开关
如果你有整洁的开关,他们可能会告诉你一堆。
3) ARP
防火墙系统可能仍会响应 ARP 请求,因此您可以让它们显示自己。您真的只需要知道正在使用的 IP 对吗?不会,如果它会回应任何事情。
也许这会奏效......
或者通过使用nmap或其他东西尝试连接,然后使用wireshark同时记录ARP回复等来进行更多组合......
最后最好的是,nmap 有 Arp 模式。我从来没有尝试过。
https://nmap.org/book/nping-man-arp-mode.html
4) DHCP
如果任何地址是 DHCP 地址,则 DHCP 租约将显示它们上次更新的时间。
如果 Nmap 报告“主机关闭”,那么您很有可能假设没有主机使用该 IP 地址。为默认主机发现选择的探针将得到绝大多数网络系统的响应,并且对于直接连接(相同网络链接)的系统甚至更好,因为使用了 ARP 探针,这是 IP 的先决条件通过以太网式链接进行通信。也就是说,如果它不响应 ARP 请求,它就不可能有 IP 地址。
您说,“由于假定主机已启动,我无法验证它是否确实已启动”,但事实是,它可能未启动。事实上,如果所有端口都被过滤,那么它几乎肯定会关闭。出于所有意图和目的,没有人愿意使用该 IP 地址进行通信,这就是“关闭”的全部含义。
-iL
最后,如果您允许 Nmap 通过在命令行上或通过输入文件选项提供多个目标规范来并行扫描主机,而不是使用 shell 循环单独扫描每个主机,您的扫描将会快得多。即使您使用后台 (&
) 来启动并行nmap
进程,您也无法超越 Nmap 自身自适应并行的速度。