2012-05-21 74 views
1

我正在使用Ruby在我的家庭网络上连续运行nmap -sP ping扫描,以检查连接的新主机。几个问题:Nmap Ping扫描

  • 有没有更好的方法来做到这一点?
  • -sP找到新主机的效率如何?
  • 在循环中反复运行会为我的家庭网络创建任何问题,而这些问题仅用于临时Web浏览?
+0

@Mike Pennington:使用Ruby。我应该删除这个线程还是保留它并且有两个? – catbat

回答

3

有没有更好的方法来做到这一点?

如果主机保证接受ping,这已经足够了;然而,有时nmap -sP可以比wifi网络更快处理它们。如果您看到类似的问题,只需降低nmap --scan-delay 0.1 -sP

-sP在寻找新主机时有多有效?

和平一样好;但是,新的Windows安装通常会在默认情况下阻止ping。你可以运行nmap -sT -P0只是为了确保你得到了一切...

终极主机检测方案是轮询你的以太网交换机的新的MAC地址条目。

在循环中反复运行会为我的家庭网络创建任何问题,而这些问题仅用于临时Web浏览?

都能跟得上

+0

太棒了!有关在哪里寻找学习如何轮询mac地址的建议?搜索字词? – catbat

+0

如果这是企业设备,您可以使用'snmp'并轮询['Q-Bridge-MIB'](http://www.oidview.com/mibs/0/Q-BRIDGE-MIB)中的'dot1qTpFdbTable'的.html)。对于消费者以太网交换机,你通常无法通过'snmp'获得它......如果他们提供了这么多信息,就使用他们的网络GUI –

+3

Nmap主机检测('-sn',以前称为“-sP”)不仅仅是一个ICMP回应请求(a la ping)。假设您以超级用户身份运行,它还会尝试使用端口80的TCP SYN,端口443的TCP ACK以及ICMP时间戳请求。 'nmap -sT -P0'需要很长时间,不要这样做。 – bonsaiviking

1

一个更好的解决办法是使用交换机(“路由器”)来检查网络上的新客户。大多数家庭无线路由器将有一个网页列出当前的DHCP租约,您可以从您的Ruby脚本中进行轮询。可能还有一个页面列出了与网络相关的所有MAC地址(实际上是交换机的ARP表)。

+0

我喜欢这个想法。我的案例中存在这样一个页面,其中包含完整信息我真的不知道该如何解决这个问题,但谷歌提起了Watir,考虑到我是一个初学者,似乎很好地完成了这项工作。我注意到路由器上显示的客户端列表似乎没有更新,因为在从网络中删除客户端之后,客户端列表中的客户端已经更新。这是正常的吗?另外 - 对于'-sn'不工作并且我有MAC地址的情况,要确保主机位于网络上,最好的不显眼的扫描类型是哪里? – catbat

+1

这是正常现象。路由器无法知道主机是否已经离开或回来。高速缓存的条目可能会在设定的时间后过期。如果-sn不起作用,那么(在同一个网段上)什么都不会(因为如果你不能完成一个ARP请求),那么你就根本无法与主机通话。你可以认为它已经失效了。另一种做类似事情的工具是arping,或者你可以尝试一个Ruby [数据包制作库](http://www.tmplab.org/2010/10/03/packet-crafting-toolkits-in-ruby/) – bonsaiviking

+0

好吧,非常感谢!我似乎无法在手册页中找到'-sn' - 是否只能在nmap 6中找到? '-sP-'的列表似乎与上面描述的相匹配,所以我猜测它是从ver切换过来的。 5至6. – catbat