2014-10-06 3 views
0

내가하는 페이지의 양식을 사용하는 사람의 공용 IP를 얻으려고합니다.공용 IP를 얻는 방법

어떤 프로그래밍 언어를 사용할지 모르겠습니다. 웹에서 책을 읽고 있었는데 일부를 찾았습니다.

// PHP Code 
$_SERVER["REMOTE_ADDR"] 

출력물은 127.0.0.1 (로컬 IP)입니다.

그럼 나도 이걸 발견 :

// PHP Code 
$externalContent = file_get_contents('http://checkip.dyndns.com/'); 
preg_match('/\b(?:\d{1,3}\.){3}\d{1,3}\b/', $externalContent, $m); 
$externalIp = $m[0]; 

이 올바른 IP (공인 IP)를 출력하지만 다른 웹 페이지 (http://checkip.dyndns.com/)를 사용합니다.

궁금한 점이 있다면 공용 IP를 어떻게 얻을 수 있습니까? 나는 다른 웹 페이지를 사용할 필요없이 그것을 얻는 방법을 찾고있다. 감사.

+1

'print_r ($ _ SERVER); ' –

+0

'http : // localhost'를 통해 서버를 얻었습니까? '127.0.0.1'을 제외하고는 아무것도 얻지 못할 것입니다. 연결된 사용자의 IP를 얻기 위해서, 그는 루프백 주소가 아닌 연결해야합니다. http://en.wikipedia.org/wiki/Localhost – Cheery

+1

왜 다른 웹 페이지를 사용할 수 없습니까? 두 번째 방법은 완벽하게 작동합니다. – Wold

답변

1

$_SERVER["REMOTE_ADDR"]은 여기서 수행하려는 작업에 적합합니다. 127.0.0.1을 사용하는 이유는 로컬 환경에서이 작업을 실행하기 때문입니다.

$externalContent = file_get_contents('http://checkip.dyndns.com/'); 
: 당신이 라이브 웹 서버에이 스크립트를 넣어 내가 그것을 액세스하는 경우 나는 어쨌든 whatismyip

그리고 검사시 얻을로

, 서버 호출을 가지고, $_SERVER["REMOTE_ADDR"]에서 동일한 IP를 얻을 것이다

은 방문자가 아닌 서버 IP 주소를 반환하는 데 성공할 것입니다.

+0

감사합니다. 그럼 이제 방문자 IP를 얻는 방법은 무엇입니까? –

+0

$ _SERVER [ "REMOTE_ADDR"]은 웹 서버에 액세스하는 컴퓨터의 IP 주소를 포함합니다. 127.0.0.1이있는 유일한 이유는 로컬로 실행했기 때문입니다. –

+0

알겠습니다. 감사합니다. –

0

이 문제는 나를 오랫동안 저주했습니다.

자신의 원격 서버에 액세스 할 수 있다면이 문제를 해결하기 위해 간단한 ISP-echo $_SERVER['REMOTE_ADDR']; 스크립트를 만들어 내 ISP가 내 로컬 호스트에서 내 장치에 할당 한 공개 IP를 제공 할 수 있습니다.

관련 문제