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