외부 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.