Linux

使用 ip 命令根據 dns 名稱查找設備的詳細資訊

  • November 24, 2018

當我檢索設備的 mac 地址時,我執行以下命令

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

這可能會列印

<dnsname> <mac address> 

正如我從 arp 的手冊中看到的那樣,它已被棄用,我的替代方法是使用 ‘ip’ 命令而不是 arp 。

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

引用自:https://unix.stackexchange.com/questions/393430