使用 ip 命令根据 dns 名称查找设备的详细信息

使用 ip 命令根据 dns 名称查找设备的详细信息

当我检索设备的 MAC 地址时,我执行以下命令

$ arp <dnsname> | grep "HWaddress" -A1 | awk '{print $1 "" $3}' |head -2 | tail -1

这可能会打印

<dnsname> <mac address> 

正如我从 arp 手册中看到的那样,它已被弃用,我的替代方案是使用 'ip' 命令而不是 arp 。

答案1

arp能够将名称作为输入并在输出中打印名称。 ip仅使用地址。

如果您可以处理地址,那么修改输出就非常容易。

$ ip neigh show to 10.0.0.1
10.0.0.1 dev wlan0 lladdr dc:fb:02:xx:xx:xx REACHABLE

$ ip neigh show to 10.0.0.1 | awk '{print $1 " " $5}'
10.0.0.1 dc:fb:02:xx:xx:xx

我刚刚注意到您的标题专门询问了 DNS 名称。如果这是要求,那么您需要翻译脚本中的名称。

$ ip neigh show to `getent hosts <dnsname> | awk '{print $1}'` | awk '{print $1 " " $5}'
$ 10.0.0.1 dc:fb:02:xx:xx:xx

相关内容