[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 
댓글
댓글 쓰기