[Shell Script] arp 테이블에서 지정 ip 주소에 대응하는 mac 주소 표시하기

 arp 테이블에서 지정 ip 주소에 대응하는 mac 주소 표시하기 




IP 주소를 지정해서 대상의 물리주소(MAC)을 검색할 때 사용하는 스크립트 입니다 . 


#!/bin/sh

ipaddr="192.168.42.254"

macaddr=$(arp -an | awk " /\($ipaddr\)/ {print \$4}") #1

if [ -n "$macaddr" ]; then                            #2
    echo "$ipaddr -> $macaddr"                        #3
else
    echo "there is no $ipaddr in ARP cache."          #4
fi





결과






이 스크립트는 셸 변수 ipaddr로 지정한 IP 주소를 바탕으로 OS ARP 캐쉬를 검색하여 해당 네트워크 인터페이스의 MAC 주소를 표시합니다 . 


IP 주소에서 MAC 을 조사 하려면 ARP 캐쉬를 참조하며 리눅스에서 arp 명령어를 사용합니다 . 


arp 출력하기 







#1 : arp 명령어 출력은 awk를 이용해 출력합니다 . 

macaddr=$(arp -an | awk " /\($ipaddr\)/ {print \$4}") #1

(awk 필터에 얻고자 하는 IP 주소를 지정합니다 ) 
  • awk {} 부분은 {print \$4} 로 $4(4번째 컬럼)를 표시하도록 합니다. 



#2 : 1의 결과를 확인합니다 . -n연산자를 사용하여 빈 문자열인지 아닌지 확인합니다 . 
문자열의 여부에 따라 if 문으로 분기합니다 . 




#3  : echo 명령어로 해당하는 IP 주소와 MAC 주소를 표시하며 , 빈 문자열인 경우 ARP 캐쉬에 없으므로 echo명령어로 표시합니다 . 


if [ -n "$macaddr" ]; then                            #2
    echo "$ipaddr -> $macaddr"                        #3
else
    echo "there is no $ipaddr in ARP cache."          #4
fi

댓글