确定一个子网中的IP是在Linux中启动还是停止的最佳方式

我有一个简单的方法,我在四个子网上使用,以确定哪些注册的IP实际上是活跃的,哪些可以被删除。

最初,我用这个命令遍历域名列表:

sudo nmap -sS -O -v oN $filename $name 

$filename是我的IP输出文件, $name是读入的域名。

从这个命令来看,对于所有报告“host down”的IP,我运行这个命令:

 sudo nmap -Pn -sS -O -v -oN $filename $name 

请注意,这里唯一的区别是我现在假设主机已经启动,只是为了查看返回的内容。

但是,到目前为止我所见过的所有情况下,所有扫描的端口都被过滤,而且由于主机已经启动,所以在第二次扫描之后,我无法validation它是否已经启动运行。

任何其他的想法?

1) 希望你不需要被动地收集这些信息。

你可以用tcpdump,Wireshark,防火墙日志logging等等来监听stream量,随着系统传输数据或者做其他事情,随着时间的推移收集信息。

2) 开关

如果你有整齐的开关,他们可能会告诉你一堆。

3) ARP

防火墙系统可能仍然响应ARP请求,所以你可以让他们自己展示。 你真的只需要知道IP正在使用的权利? 不,如果它会回应任何事情。

也许这会工作…

 # arping -I enp0s31f6 192.168.1.1 ARPING 192.168.1.1 from 192.168.1.122 enp0s31f6 Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.143ms Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.011ms Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.006ms Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.090ms ^CSent 4 probes (1 broadcast(s)) Received 4 response(s) 

或者更多的组合通过使用nmap或其他东西来尝试连接,然后与wireshark,同时loggingARP答复等…

最后,nmap有Arp模式。 我从来没有尝试过。

https://nmap.org/book/nping-man-arp-mode.html

4) DHCP

如果任何地址是DHCP地址,那么DHCP租约将在上次更新时显示。

如果Nmap报告“host down”,那么您可以很有可能假设没有主机使用该IP地址。 select用于默认主机发现的探测器将获得来自大多数联网系统的响应,并且由于使用作为IP的先决条件的ARP探测器,对于直接连接(相同的networking链路)系统而言甚至更好通过以太网样式的链路进行通信 也就是说,如果不响应ARP请求,则不能有IP地址。

你说:“因为主持人已经开始工作了,所以我没有办法确定这个主持人是否已经到了,”但事实是,这可能还没到。 事实上,如果所有的港口都被过滤掉了,那么这个港口几乎就会被淘汰。 对于所有的意图和目的, 没有任何事情愿意使用IP地址进行通信 ,这是“下”的意思。

最后,如果允许Nmap通过在命令行上提供多个目标规范或通过-iLinput文件选项而不是使用shell循环来单独扫描每个主机,则扫描将会更快。 即使你正在使用背景( & )来启动并行nmap进程,你也无法超越Nmap自适应并行的速度。