장치의 MAC 주소를 검색하면 다음 명령을 실행합니다.
$ arp <dnsname> | grep "HWaddress" -A1 | awk '{print $1 "" $3}' |head -2 | tail -1
이것은 인쇄될 수 있습니다
<dnsname> <mac address>
arp 매뉴얼을 읽어보니 더 이상 사용되지 않으며 대안은 arp 대신 'ip' 명령을 사용하는 것입니다.
답변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