Когда я получаю 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