$ sudo arp -avn ? (10.10.7.30) at 00:cc:cc:bb:dd:86 [ether] on eth0 Entries: 1 Skipped: 0 Found: 9 $ sudo arp -d 10.10.7.30 $ sudo arp -avn ? (10.10.7.30) at <incomplete> [ether] on eth0
我预计10.10.7.30不会进入。 意外的是,条目仍然被标记为<incomplete> 。
使用Ubuntu 10.04 。
入口将被删除,只要有耐心。
(如果你想最短的答案:不完整==删除)
假设“删除”是该操作的错误词。 这里真正发生的事情是,该条目被手动设置为状态“请求发送,无应答” (因此“不完整的”ARP过程),就像机器真的不可达一样。
现在,除非在此期间获得新的有效ARP响应,否则该条目将尽快完全移除。 在这种情况下,即使该条目被移除而不是被标记为不完整,该条目也将被重新添加。 所以没有实际的赞成或反对这种行为。
但请记住,我们正在谈论caching。 从caching中删除内容非常困难且昂贵。 如果在最终删除条目之前将条目replace为无效条件,并等待它被replace,则效率会更高。 但是对于系统来说,如果条目从列表中删除或只是标记为不完整,则完全没有区别。
为了补充所有其他答案, 我发现这个链接非常有用 。
在某些情况下使用ip更合适,就像命令一样:
# ip -s -s neigh flush all
结果可能取决于你的linux内核。
我知道这听起来很明显,但对于那些不习惯使用shell的人来说,这是我的build议:
从@KarmaFusebox的答案开始,为什么不简单地 grep结果…? :
arp -a | grep "incomplet" -i -v
它只会显示现有的/活动的caching条目。
我认为它一直是一个POSIX兼容的命令。 如果这是你所需要的,这是一个脚本化的方法。