본문 바로가기

리눅스

[draft] 리눅스에서 기본 게이트웨이를 사용하는 로컬 IP 주소 확인하기

리눅스에서 기본 게이트웨이를 사용하는 로컬 IP 주소 확인하기

ifconfig 출력 확인

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 65535
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 3560  bytes 27641426 (27.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1906  bytes 133847 (133.8 KB)
        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
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • eth0 : 실제 네트워크 통신에 사용되는 인터페이스
  • lo : 루프백 인터페이스 (127.0.0.1)

ifconfig 기반 IP 주소 추출

grep + awk 사용

ifconfig | grep "inet" | grep "broadcast" | awk '{print $2}'
172.17.0.2

awk 단독 사용(더 간결)

ifconfig | awk '/inet .*broadcast/ {print $2}'
172.17.0.2

ip 명령어 기반 IP 주소 추출(권장)

특정 인터페이스(eth0)의 IP 확인

ip addr show dev eth0 | awk '/inet / {print $2}' | cut -d '/' -f 1
172.17.0.2

기본 게이트웨이를 사용하는 IP 자동 추출(추천)

실무에서는 기본 게이트웨이를 사용하는 인터페이스의 IP를 추출하는 방식이 가장 안전합니다.

ip route get 1.1.1.1 | awk '{print $7}'

또는

ip route get 1.1.1.1 | grep -oP 'src \K\S+'
172.17.0.2