MAC 删除arp缓存的命令 arp -ad

本文介绍了在MAC OS上清除ARP缓存的方法,重点讨论了使用`arp -ad`命令的简便性和权限要求。同时,解释了一个尝试通过`arp -n`和`awk`组合命令来删除ARP条目的复杂过程,但该命令在MAC OS上无法正常工作,主要原因是`-n`选项在MAC OS上的特殊用法。最后,推荐了使用`arp -ad`命令直接删除ARP缓存,这是一个更有效且需要root权限的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接使用arp的命令就可以,不用使用arp的一个复杂命令,这个复杂命令使用的是awk和arp的管道命名
arp -n|awk '/^[1-9]/{system("arp -d "$1)}'


这个命令在MAC上运行不成功,主要的原因是arp的指令,在MAC OS上,-n 选项,这样是执行不成功的,需要跟其他的选项联合使用,不可以单独使用,-n选项只是指定一个显示的格式。可以配合a选项执行。

即使-a选项,其输出的格式,满足不了awk的使用格式。awk是一种语言的书写格式,使用两个单引号作为命令的分割,是pattern + command的模式,模式使用//两个分割符包围,这里面的表达式,可以是正则表达式,也可以是关系表达式等,后面的命令,是一些常见的命令,如print, system等,
awk的主要作用是,对于输入文件或者是其他命令的输出的每一行文本,执行pattern,并使用分隔符分割该条输入,如
? (192.168.1.252) at d0:67:e5:ec:53:cc on en0 ifscope [ethernet]
就会被分割成类似于一个数组,真正的分割内容是
?
(192.168.1.252)
at
d0:67:e5:ec:53:cc
on
en0
ifscope
[ethernet]
程序中可以使用$n直接访问,?是$1,(192.168.1.252)是$2,一次类推。。。
有一个匿名变量$0是存放的该条记录,即一行的数据,当热还必须是满足pattern的时候才会有值。

所以根据上面分析的获取的$1,根本就没有值,而且,即使使用其他的pattern,或者不使用pattern,得到的是(192.168.1.252),而不是192.168.1.252,所以,后续的命令根本没法执行。

其实,MAC OS下,可以使用一个简单的命令就可以完成清空ARP缓存的目的
arp -ad
既可以删除ARP缓存,这个命令的运行权限是root用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值