외부 IP를 찾기 위해 외부 웹 기반 서비스를 사용하거나 시스템 기반 방법을 사용할 수 있습니다. 외부 서비스를 사용하는 것이 가장 쉬운 ifconfig
방법은 기반 솔루션이 시스템을 사용하지 않는 경우에만 시스템에서 작동한다는 것 NAT
입니다. 두 가지 방법은 아래에 자세히 설명되어 있습니다.
외부 서비스를 사용하여 외부 IP 찾기
가장 쉬운 방법은 명령 줄 브라우저 또는 다운로드 도구를 통해 외부 서비스를 사용하는 것입니다. wget
우분투에서는 기본적으로 사용 가능 하므로 사용할 수 있습니다.
IP를 찾으려면
$ wget -qO- https://ipecho.net/plain ; echo
예의 :
당신은 또한 사용할 수 있습니다 lynx
(브라우저) 또는 curl
대신에 wget
외부 IP를 찾기 위해, 위의 명령에 약간의 변형을합니다.
curl
IP를 찾는 데 사용 :
$ curl https://ipecho.net/plain
더 나은 형식의 출력을 사용하려면 다음을 사용하십시오.
$ curl https://ipecho.net/plain ; echo
사용하는 빠르고 (틀림없이 가장 빠른) 방법 dig
으로 OpenDNS
해결로 :
다른 답변은 모두 HTTP를 통해 원격 서버로 이동합니다. 이들 중 일부는 출력 구문 분석이 필요하거나 User-Agent 헤더를 사용하여 서버가 일반 텍스트로 응답하도록합니다. 또한 자주 변경됩니다 (아래로 이동, 이름 변경, 광고 입력, 출력 형식 변경 등).
- DNS 응답 프로토콜은 표준화되어 있습니다 (형식은 계속 호환됩니다).
- 역사적으로 DNS 서비스 (OpenDNS, Google 퍼블릭 DNS, ..)는 훨씬 오래 살아남는 경향이 있으며 오늘날 안정적이고 확장 가능하며 일반적으로 새로운 whatwhatyip.com HTTP 서비스가 무엇보다 인기가 있습니다.
- (미세 최적화에 관심이있는 괴짜에게는)이 방법은 본질적으로 더 빨라야합니다 (몇 초 정도만).
리졸버로 OpenDNS와 함께 dig 사용하기 :
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
https://unix.stackexchange.com/a/81699/14497 에서 복사
외부 서비스에 의존하지 않고 외부 IP 찾기
터미널에 다음을 입력하십시오.
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
상기에서, 대체 <interface_name>
예를 들어, 실제 인터페이스의 이름으로 : eth0
, eth1
, pp0
, 등 ...
사용법 예 :
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
터미널에 다음을 입력하십시오 (시스템에있는 모든 네트워크 인터페이스의 이름과 IP 주소를 얻습니다).
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
사용법 예 :
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444
주의 : 출력은 실제적인 것이 아니라 표시하는 것입니다.
예의 : https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
최신 정보
LANG=c
ifconfig
로케일 설정에 관계없이 항상 영어 출력을 제공하도록 기본 사용법 에 추가되었습니다 .