728x90
반응형
개요
쉘 스크립트 작업시 맥주소(Media Access Control ; MAC)를 얻는 방법을 정리해 둡니다.
ifconfig 명령 활용
"ifconfig" 명령을 수행하면 다음과 같이 현 장비의 모든 이더넷 장치 정보 목록을 출력합니다.
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.43 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 aaaa::aaaa:9f50:10f7:629 prefixlen 64 scopeid 0x20
ether aa:aa:01:88:4f:dd txqueuelen 1000 (Ethernet)
RX packets 343 bytes 33342 (32.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 112 bytes 16910 (16.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 78 bytes 7183 (7.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 78 bytes 7183 (7.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.77.1 netmask 255.255.255.0 broadcast 192.168.77.255
inet6 aaaa::aaaa:c274:608:c11e prefixlen 64 scopeid 0x20
ether aa:aa:01:88:4f:df txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36 bytes 5012 (4.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
무선랜에 대한 정보만 보려면 다음과 같이 무선랜에 대한 장치 이름을 입력합니다.
pi@raspberrypi:~ $ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.77.1 netmask 255.255.255.0 broadcast 192.168.77.255
inet6 aaaa::aaaa:c274:608:c11e prefixlen 64 scopeid 0x20
ether aa:aa:01:88:4f:df txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 36 bytes 5012 (4.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
맥주소가 있는 부분만 얻기 위해서 "grep" 명령을 활용합니다.
pi@raspberrypi:~ $ ifconfig wlan0grep ether
ether aa:aa:01:88:4f:df txqueuelen 1000 (Ethernet)
"awk" 명령을 이용하여 원하는 맥주소만 추출합니다.
pi@raspberrypi:~ $ ifconfig wlan0grep etherawk '{print $2}'
aa:aa:01:88:4f:df
ip 명령 활용
"ifconfig"와 유사하게 "ip" 명령으로도 현 장비의 모든 이더넷 장치 정보 목록을 출력합니다.
pi@raspberrypi:~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether aa:aa:01:88:4f:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.0.43/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
valid_lft 4357sec preferred_lft 3457sec
inet6 aaaa::aaaa:9f50:10f7:629/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:aa:01:88:4f:df brd ff:ff:ff:ff:ff:ff
inet 192.168.77.1/24 brd 192.168.77.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 aaaa::aaaa:c274:608:c11e/64 scope link
valid_lft forever preferred_lft forever
무선랜에 대한 정보만 보려면 다음과 같이 무선랜에 대한 장치 이름을 입력합니다.
pi@raspberrypi:~ $ ip a s wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether aa:aa:01:88:4f:df brd ff:ff:ff:ff:ff:ff
inet 192.168.77.1/24 brd 192.168.77.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 aaaa::aaaa:c274:608:c11e/64 scope link
valid_lft forever preferred_lft forever
맥주소가 있는 부분만 얻기 위해서 "grep" 명령을 활용합니다.
pi@raspberrypi:~ $ ip a show wlan0grep ether
link/ether aa:aa:01:88:4f:df brd ff:ff:ff:ff:ff:ff
"awk" 명령을 이용하여 원하는 맥주소만 추출합니다.
pi@raspberrypi:~ $ ip a show wlan0grep etherawk '{print $2}'
aa:aa:01:88:4f:df
결론
이번 글에서는 "ifconfig" 및 "ip" 명령에 추가로 "grep" 및 "awk" 명령을 조합하여 맥주소(Media Access Control ; MAC)를 얻는 방법을 살펴보았습니다.
참고자료
- "How to Get the MAC Address of a Network Interface":https://www.baeldung.com/linux/get-mac-address
'Linux,Unix,BSD' 카테고리의 다른 글
[shell] Bad Substitution(bash) (0) | 2022.06.23 |
---|---|
[shell] 문자열 잘라내기(substring) (0) | 2022.06.13 |
[shell] 명령어 유무 확인하기(command, which) (0) | 2022.06.09 |
[라즈베리파이] 화면 꺼짐 설정 (Configuring Screen Blanking) (0) | 2022.06.08 |
라즈베리파이에서 "Emergency Mode" 진입 문제 (0) | 2022.05.31 |