외부 IP를 찾기 위해 어떤 * nix 기반 명령을 사용할 수 있습니까?


답변:



8
발굴 + short myip.opendns.com

OpenDNS를 DNS 서버로 사용하는 경우에만 작동합니다.

그렇지 않은 경우 다음 중 하나가 작동합니다.

발굴 + short myip.opendns.com @ 208.67.222.222
발굴 + short myip.opendns.com @ 208.67.220.220
발굴 + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

1
MacOS 10.5, Ubuntu 8.04 또는 Ubuntu 9.04에서 작동하지 않습니다.
— Drew Stephens

우분투 8.10에서 재미있는 점이 있습니다.
— 브래드 길버트

아마도 내가 opendns를 사용하기 때문일 것입니다.
— 브래드 길버트

http 대신 IP를 찾기 위해 DNS를 사용하는 경우 +1 예를 들어 @resolver1.opendns.com(가독성을 위해)
— jfs



2

이것을 사용하려면 OpenDNS 서버를 사용해야합니다 ... 다음과 같은 발굴로 특정 DNS 서버를 쿼리 할 수 ​​있습니다.

발굴 + short myip.opendns.com @ 208.67.222.222

2

curl을 사용하여 whatismyip과 같은 페이지를 가져온 다음 조각을 가져올 수 있습니다. 이 예에서는 whatismyipaddress.com을 사용했습니다. 분명히 필드는 서비스마다 다릅니다.

curl -s http://whatismyipaddress.com/ | grep LOOKUPADDRESS | awk '{ print $4 }'

1

인터넷에서 어딘가에 traceroute를 실행하고 로컬 네트워크에서 홉을 찾습니다.

아마도 더 좋은 방법이 있습니까?




0

ifconfig 명령을 사용하여 모든 인터페이스와 관련 IP 주소를 나열 할 수 있습니다.

인터넷 인터페이스가 ppp0이라는 것을 알고 있다면

$ ifconfig ppp0
ppp0 링크 캡슐화 : 지점 간 프로토콜
          inet addr : XXXX.X PtP : YYYY 마스크 : 255.255.255.255
          NOARP MULTICAST MTU를 가동하는 포인트
          RX 패킷 : 198986 오류 : 0 삭제 : 0 오버런 : 0 프레임 : 0
          TX 패킷 : 122929 오류 : 0 삭제 : 0 오버런 : 0 캐리어 : 0
          충돌 : 0 txqueuelen : 3
          수신 바이트 : 134195571 (127.9MiB) TX 바이트 : 17101701 (16.3MiB)

XXXX가 IP 주소가됩니다. YYYY는 다음 홉의 IP 주소입니다.

그런 다음 grep / awk / sed / cut / perl / what을 사용하여 ifconfig의 출력을 후 처리하여 IP 만 추출 할 수 있습니다.

iproute 도구가 설치되어있는 경우 다른 대안은 ip 명령을 사용하는 것입니다. 예 :

$ ip 주소 목록 ppp0
21842 : ppp0 : mtu 1444 qdisc htb 상태 UNKNOWN qlen 3
    링크 / ppp
    inet XXXX 피어 YYYY / 32 범위 글로벌 ppp0

아마도 읽기 쉽고 구문 분석하기가 더 쉽습니다.

$ ip 주소 목록 ppp0 | awk '/ inet / {print $ 2}'
XXXX

-ifconfig의 모든 IP가 실제 인터넷 IP와 일치하지 않을 가능성이 있습니다 (biNAT의 경우)-FreeBSD에는 iproute2 패키지가 없으므로 ip 명령을 적용 할 수 없습니다
— SaveTheRbtz

사실, 나는 NAT를 사용하지 않으므로 나에게 결코 발생하지 않았습니다 .... 자신의 시스템에 대해 쿼리 할 수있는 정보를 위해 외부 서비스를 사용하는 것이 나에게 "잘못"되었습니다. NAT를 사용하더라도 필요할 때 사용할 수 있거나 사용할 수없는 외부 서비스에 의존하는 것보다 NAT를 사용하여 라우터를 쿼리하는 방법 (아마 SNMP 쿼리를 통해)을 찾는 방법을 여전히 선호합니다.
— cas

@Craig, 귀하의 접근 방식은 좋습니다. 그러나 외부에서 해당 값에 도달 할 수 없으면 외부 IP가 아닙니다. 당신은 않는 이 답변에 대한 외부 지점에 의존해야합니다. 아이디어는 쿼리에 대해 신뢰할 수있는 (적어도 주변 포인트보다 큰) 외부 지점을 찾는 것입니다. OpenDNS는 좋은 지적입니다.
— nik

@nik : 국경 라우터의 IP가 외부 IP가 아닌 유일한 경우는 여러 계층의 NAT 뒤에있을 때입니다.이 경우 올바른 솔루션은 피해를 입지 않은 서비스로 최대한 빨리 전환하는 것입니다 . 또한 IP를 찾기 위해 URL을 가져 오는 데있어 문제점은 실제로 가져 오는 호스트의 IP 만 알려줍니다. 이는 Via 헤더를 제거하는 프록시 일 수 있습니다.
— cas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.