2009-09-18 59 views
0

我想获得给定子网上所有主机的MAC地址。到目前为止,我通过ping所涉及的所有ips来强制更新arp表。之后,我查询ARP表,一切都很好。iPhone和ARP表

问题是如何提高更新速度。在iPhone 3GS上Ping 65000个地址大约需要15分钟。即使我不等待回应正在发生。这是很长的路要走。 这可能是我的ping代码中存在一个错误,它会降低速度,但目前我找不到任何东西。

我的问题是:
是否有更快的网络操作触发arp表更新?

回答

0

你不能在当前子网上做多播吗?最好是生成ACK nowlegements的东西,这样如果你在接口上侦听,你会发现所有的mac地址。

+0

Ping广播地址不会生成ACKnowlegements,是吗?这里的问题是捕捉那些不回答ping的主机。 – Monobono 2009-09-18 09:55:45

1

我的猜测是,最快的方式可能是查询现有的ARP表,例如,子网的DHCP控制器上的表,使用例如SNMP。

+0

这可能会奏效。但是如果没有DHCP控制器,该怎么办?顺便问一下你知道iPhone的snmp栈吗? – Monobono 2009-09-18 09:57:08

+0

如果没有DHCP控制器,那么子网的网关(即子网上的主机用来连接互联网其余部分的节点)如何:网关不需要/有最新的ARP表? – ChrisW 2009-09-18 12:31:27

+0

“你知道iPhone的snmp堆栈吗?” - 我不。此外,这只适用于您拥有权限的子网(即主机支持SNMP的地方,您拥有使用它的凭证)。在这些情况下,您也可以在您的手机可以与之通话的主机上安装自己的软件(以使用非SNMP方式查询ARP表)。 – ChrisW 2009-09-18 12:33:53