2009-07-17 9 views
40

내 컴퓨터가 라우터/방화벽 뒤에 있습니다. 내 외부 IP 주소를 프로그래밍 방식으로 어떻게 찾을 수 있습니까? 임시 질문에 http://www.whatsmyip.org/을 사용할 수 있지만 서비스 약관은 자동 수표를 허용하지 않습니다.외부 IP 주소가 무엇인지 어떻게 알 수 있습니까?

아이디어가 있으십니까?

+13

1에서

$ curl 'https://api.ipify.org?format=json' 

결과! – RichieHindle

+0

작업중인 서버를 소유하고 있지 않은 경우 프로젝트에 실제로 참여하기 전에 네트워크 외부의 호스트에 액세스 할 수 있어야합니다. –

답변

45

http://ipecho.net/plain은 이제 자동 연결에 대한 회원 자격이 필요하므로 whatismyip.com이 (가) 대체 가능한 것으로 보입니다. 그들은 매우 친절하게 offering이 서비스를 무료로 나타납니다, 그래서 그것을 남용하지 마십시오.

+2

선호하는 이유에 대한 자세한 정보는 http://www.whatismyip.com/automation – Justin

+0

지금이 서비스에 대한 요금입니다. 자세한 내용은 http://www.whatismyip.com/membership-options/ – RyanfaeScotland

+0

http://www.ipveg.com에서 인증이나 제한이 필요하지 않습니다. –

12

불행히도 쉽게 할 수있는 방법이 없습니다.

www.whatsmyip.org과 같은 사이트를 사용하고 출력을 구문 분석합니다.

checkip.dyndns.com은 다음과 같습니다 매우 간단한 HTML 파일을 반환

<html> 
    <head> 
    <title>Current IP Check</title> 
    </head> 
    <body> 
    Current IP Address: 84.151.156.163 
    </body> 
</html> 

이 구문 분석하는 것은 매우 쉬워야한다. 또한이 사이트는 약 10 년 동안 존재합니다. 잠시 동안있을 것이라는 희망이 있습니다.

+0

DynDns 서비스는 서비스를 사용할 때만 사용됩니다 (http://dyn.com/support/developers/checkip-tool/). –

+0

나는 이것을 사용한다. 대부분의 언어로 구문 분석하는 것은 매우 쉽습니다. 파이썬에서는 코드의 모든 추가 줄을 제거하는 코드 한 줄입니다 (filebuffer [before : -after]는 앞뒤가 앞뒤의 문자 수이며 상수 임). @IvanMesic,이 사이트를 사용하기 위해 자신의 서비스를 사용할 필요는 없습니다. – JFA

0

whatismyip.com 또는 ipchicken.com은 매우 쉽게 구문 분석 할 수 있습니다.

웹 호스트 나 vps가있는 경우 무작위로 내려가는 것을 두려워하지 않고 고정시킬 수 있습니다.

11

당신이 modphp와 웹 서버에 액세스 할 수있는 경우, 당신은 롤백 할 수 있습니다 자신의 : 당신이 그 학대 싶어하지 않는 경우

<?php print $_SERVER['REMOTE_ADDR']; ?> 

하면, 당신은 비밀을 유지하거나 요청 제한을 추가해야합니다 .

나는 수년간 나의 서버에 하나를 사용 해왔다.

명시 적으로 :

귀하의 웹 사이트에 public_html을 폴더에 whatismyip.php라는 파일을 만듭니다. 그것은 무엇이든 불릴 수 있고 당신의 webroot에서 어디에서든지 일 수있다.

위의 줄을 추가 한 다음 서버 조회 : 예를 들어

curl http://example.com/whatismyip.php 

합니다.

+0

수년 전 내 서버에 이와 같은 스크립트를 추가했습니다. 매우 유용합니다. 그 밖의 모든 것은 기괴한 과잉입니다. – JAL

+1

하지만 우리는 게으르다. 그래서 우리는 빨리 뭔가를 찾고있다. – georgiecasey

1

또 다른 방법은 클라우드 이메일 (야후, 구글, 핫메일)에 대한 액세스 권한이있는 경우 전자 메일을 보내는 것입니다. 그런 다음 헤더를 보면 IP 주소가 표시됩니다.

나는 정확한 영역을 보일 것이다하지만 헤더를 찾아, 각 implmentation 다를 수 있습니다 바이 수신이처럼 보이는 뭔가에 도달 할 때까지 전송-에 의해

편집 것을 따르 이것은 어떻게 대답 PROGRAMMATIC 방식이 아닌 IP 주소를 찾으려면

+3

이것은 매우 비효율적 인 아이디어입니다. –

+0

비효율적 일 수도 있지만, 잠긴 워크 스테이션에서 외부 장치를 사용할 수없는 경우 다른 방법을 사용할 수 있습니다. – Wayne

2

라우터가 UPnP를 사용하는 경우 라우터에서 외부 IP를 쿼리하기 위해 개발중인 언어에 상관없이 항상 UPnP 라이브러리를 사용할 수 있습니다.

6

불행히도 2013 년 현재 whatismyip.com 서비스 요금이 부과됩니다.

http://www.icanhazip.com은 3 년 후 여전히 강세를 보이고 있습니다. 그냥 텍스트를 IP로 출력합니다.

http://checkip.dyndns.org도 여전히 작동합니다.

Google을 사용할 수도 있지만, Google에서 서비스 사용 중지가되지 않도록하려는 경우에도 서비스 약관 위반으로 계속 차단 될 수 있습니다.

https://www.google.ie/search?q=whats+is+my+ip

그러나 그들은 저를 차단하는 경우에도, 그들은 여전히 ​​나에게 오류 메시지가 내 클라이언트 IP 주소를 알려줍니다.

1

내 WRT54G 라우터는 로컬 라우터 액세스 기능 (http (s) 관리 인터페이스)을 통해 알려주며, 다른 많은 장치로 비슷한 것을 할 수 있다고 상상합니다. 이 경우, 시작 페이지는이 구문 포함하는 4 개 개의 라인 IPv4 주소의 옥텟을 제공 =

클래스 = NUM ​​최대 길이 = 3 크기 = 3의 값을 'I'이름 = ID 'N를 wan_ipaddr_' I = 는 옥텟 값 N이다

옥텟 번호 인 'N를 wan_ipaddr_'. 광시의이 비트는 가져 와서, 나를 위해 Cygwin에서의 예의를 구문 분석 :

#! /usr/bin/env perl 
use strict; 
use warnings 'all'; 

my($account, $password) = @ARGV; 

open QUERY, 
    "curl --sslv3 --user '$account:$password' https://Linksys/ --silent |" 
    or die "Failed to connect to router"; 

my @ipaddr = ('x','x','x','x'); 

while(<QUERY>) { 
    $ipaddr[$2] = $1 if /value='(\d+)' name='wan_ipaddr_([0-3])/; 
} 
close QUERY; 
print join('.', @ipaddr); 

이 라우터 펌웨어의 모든 버전에서 작동한다는 보장은 없습니다입니다.

라우터가이 인터페이스에 http를 사용하도록 설정된 경우 --sslv3 curl 옵션을 삭제하고 점으로 구분 된 10 진수 표기법을 사용하여 라우터를 처리 할 수 ​​있습니다. 위의 컬 옵션 HTTPS를 사용하려면, 나 또한 이런 짓을 : (Linksys.crt로 저장) 라우터의 자체 서명 된 인증서를 가져 오기 위해 브라우저를 사용

  1. . 에 대한 별칭으로, (\ WINDOWS \ system32를 \ 드라이버 \ 내 Win8 상자 등 \ HOSTS C)

    openssl x509 -in Linksys.crt -text >> /usr/ssl/certs/ca-bundle.crt 
    
  2. 내 호스트 파일에 추가 '링크시스':
  3. 내 CA 번들에 추가 라우터의 주소. 점 분리 십진수 표기법이이 별명 대신 컬 (curl)에 제공된 경우, 인증 주체 이름 불일치로 인해 연결을 거부합니다.

또는 --insecure 옵션을 사용하여 인증서 확인을 무시할 수 있습니다.이 경우 상황에 따라 적절할 수 있습니다.

2
curl ifconfig.me 

또는 Incase의 당신은 컬 설치하지 않은

curl ifconfig.me/ip 

,이 도움이

wget ifconfig.me/ip 2>/dev/null && cat ip 

희망.

-1

간단하지만 사용하기에 우아하지 않습니다. 몇 가지 보안 카메라와 케이블 공급자를 설치했습니다 - Wide Open West 또는 WOWWAY는 DHCP 예약을 위해 정적 IP - EXTORTION을 설정하기 위해 한 달에 10 달러를 원했습니다 ... 그래서 다음 코드를 사용하여 VBS 파일을 만들어 결과를 삭제합니다. 보관 용 계정 및 Google 드라이브 ... 새 파일을 삭제해야하는 이유는 무엇인가요?

내 고향의 PC에서 실행됩니다. 내 PC는 정전으로 다시 시작하도록 설정되어 있으며 매일 한 번씩이 작업을 실행하도록 예약되어 있습니다 (자주 실행하면 사이트가 요청을 차단합니다).

가 지금은 도로에 내 IP 주소를 얻을 볼 수있는 사람들이

get_html "http://ipecho.net/plain", "C:\Users\joe\Google Drive\IP.html" 

get_html "http://ipecho.net/plain", "C:\Users\joe\Dropbox\IP.html" 



sub get_html (up_http, down_http) 

dim xmlhttp : set xmlhttp = createobject("msxml2.xmlhttp.3.0") 

xmlhttp.open "get", up_http, false 

xmlhttp.send 

dim fso : set fso = createobject ("scripting.filesystemobject") 

dim newfile : set newfile = fso.createtextfile(down_http, true) 

newfile.write (xmlhttp.responseText) 

newfile.close 

set newfile = nothing 
set xmlhttp = nothing 

end sub 
0

ifcfg.me :-) 내 물건을 훔쳐가

nslookup을
텔넷
FTP
및 HTTP를 통해 조회 할 수 있습니다

도 IPv6와 함께 작동합니다.

2

이 질문은 잠시 후에 묻기 때문에 ipify이라는 프로그래밍 방식으로 IP 주소를 확인할 수 있도록 특별히 고안된 무료 웹 서비스가 있습니다. 약관을 존중하기위한

{"ip": "1.2.3.4" /* your public IP */} 
관련 문제