2010-06-09 186 views
1

가능한 중복 :
How to get the client IP address in PHP?IP 주소를 얻는 방법?

내가 페이지를 보려면 사용자의 IP 주소를 얻으려면. 어떻게?

+3

가능한 중복 [어떻게 PHP는 웹 서비스에서 클라이언트의 IP 주소를받을 수 있나요? (http://stackoverflow.com/questions/1437771/how-can-i-get-the-clients-ip -add-in-a-php-webservice). 또한 [클라이언트 IP 주소를 얻는 방법] (http://stackoverflow.com/questions/3003145/how-to-get-client-ip-address)이 질문에 유래 stackoverflow.com 의해 질문 –

+0

이 남자는 같은 사무실에 있습니다. SO의 바보 만들기 :) 100 % OFFICE 중복 http://stackoverflow.com/questions/3003145/how-to-get-client-ip-address –

답변

4

당신은 $_SERVER['REMOTE_ADDR'];

예 사용할 수 있습니다

$userIP = $_SERVER['REMOTE_ADDR'];

2

$ _SERVER [ 'REMOTE_ADDR']

'REMOTE_ADDR'- IP 주소있는 사용자가보고있는 현재 페이지.

$ _SERVER [ 'REMOTE_HOST']

'REMOTE_HOST'- 사용자가 현재 페이지를보고있는 호스트 이름. 역방향 DNS 조회는 사용자의 REMOTE_ADDR을 기반으로합니다.

참고 :이 변수를 만들려면 웹 서버를 구성해야합니다. 예를 들어, 아파치에서는 httpd.conf 안에 HostnameLookups On이 필요합니다.

$ _SERVER [ 'REMOTE_PORT']

'REMOTE_PORT'- 포트는 웹 서버와 통신하기 위해 사용자의 컴퓨터에 사용되는.

+0

인용시 소스를 언급하십시오 - http : // php .net/manual/ko/reserved.variables.server.php –

4

종종 REMOTE_ADDR 값을 얻는 것만 큼 쉽지만 때로는 사용자가 프록시 서버를 사용하지 않을 때 그 값은 사용자가 아닌 프록시 서버의 값이됩니다. "멋진"프록시 서버는 사용자의 IP를 HTTP_CLIENT_IP 또는 X_FORWARDED_FOR과 같은 다른 헤더에 넣습니다.

그러나 클라이언트의 IP를 얻는 완벽한 방법이 없다는 것을 언급해야합니다. 아래의 방법은 사용자가 프록시를 사용하는지 여부를 고려합니다.

if(array_key_exists("HTTP_CLIENT_IP",$_SERVER) 
&& !empty($_SERVER["HTTP_CLIENT_IP"])) { 
    return $_SERVER["HTTP_CLIENT_IP"]; 
} 
else if(array_key_exists("X_FORWARDED_FOR",$_SERVER) 
&& !empty($_SERVER["X_FORWARDED_FOR"])) { 
    return $_SERVER["X_FORWARDED_FOR"]; 
} 
else { 
    return = $_SERVER["REMOTE_ADDR"]; 
} 
+0

마지막 줄 => return $ _SERVER [ "REMOTE_ADDR"]; –

관련 문제