본문으로 건너뛰기
0%

빠르고 간단하게: Bash로 IP 주소 가져오기

카테고리

문제

bash 스크립트에서 IP 주소를 가져와야 할 때가 있나요? 수없이 저를 구해준 간단한 한 줄 명령어를 소개합니다!

해결책

이더넷 인터페이스가 eth0라면:

$ IPADDR=$(ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $2}')
$ echo $IPADDR
172.17.0.3

작동 원리

단계별로 분석해봅시다:

  1. ifconfig eth0 - eth0의 인터페이스 정보 가져오기
  2. grep inet - “inet”을 포함하는 줄 필터링
  3. head -1 - 첫 번째 일치 항목만 가져오기
  4. sed 's/\:/ /' - 파싱을 쉽게 하기 위해 콜론을 공백으로 교체
  5. awk '{print $2}' - 두 번째 필드 가져오기 (IP 주소)

최신 대안

최신 시스템을 사용한다면 오래된 ifconfig 대신 ip를 사용하는 것이 좋습니다:

$ IPADDR=$(ip route get 1 | awk '{print $NF;exit}')
$ echo $IPADDR
172.17.0.3

이 방법은 인터넷에 도달하기 위해 사용될 인터페이스의 IP를 가져오기 때문에 더 신뢰할 수 있습니다.

프로 팁

  • 항상 특정 환경에서 스크립트를 테스트하세요 - 네트워크 인터페이스 이름은 다를 수 있습니다!
  • 프로덕션 스크립트의 경우 인터페이스가 존재하는지 확인하는 오류 검사를 추가하세요
  • 인터페이스가 다운되었거나 IP가 없을 때 어떻게 될지 고려하세요

부록: 참고자료

때로는 가장 간단한 해결책이 최고의 해결책입니다! 🚀

댓글 남기기

여러분의 생각을 들려주세요

댓글

GitHub 계정으로 로그인하여 댓글을 남겨보세요. 건설적인 의견과 질문을 환영합니다!

댓글을 불러오는 중...