2013-07-23 2 views
0

나는 모든 사용자가 동일한 ip를 가지고 있다는 것을 알아 차렸다. 어제까지 잘 작동했습니다. 난 사용자의 IP 주소를받을 수 있도록 아래의 코드를 사용하고 서버의 IP 65.254.32.34 반환 된내 서버와 원격 IP가 같은 이유는 무엇입니까?

: 지금이 code와 함께 테스트를하고있는 중이 야

<?php 
function getrealip() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) 
     { 
     $ip = $_SERVER['HTTP_CLIENT_IP']; 
    } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
     { 
     $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } else { 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 
    return $ip; 
}  
?> 

을하고는 동일한 IP를 모두 보여주는.

<?php 
echo 'Server IP: ' . $_SERVER['SERVER_ADDR'] . '<br />'; 
echo 'Your IP: ' . $_SERVER['REMOTE_ADDR']; 
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{ 
    echo '<br />Forwarded For: ' . $_SERVER['HTTP_X_FORWARDED_FOR']; 
} 
?> 

출력은 다음과 같습니다

내 IP를 그대로
Server IP: 65.254.32.34 
Your IP: 65.254.32.34 

: 115.240.13.83

난 내 두 번째 코드로 한 페이지를 만든 : http://ffsplus2.com/myip.php 당신의 nginx 서버 인

+0

잘 작동합니다! – tlenss

+0

@tlenss 당신은 그게 당신에게 당신의 IP를 확실히주고 있습니까? 서버가 아닌가요? – deerox

+0

코드가 제대로 작동합니다. 코드가 동일한 주소를 출력합니다. 서버가 프록시 뒤에 앉아 있습니까? – tlenss

답변

2

같이 보인다 올바르게 설정되지 않았습니다. this 기사를 확인하십시오.

+0

링크가 도움이되었습니다. 감사합니다. – deerox

1

서버가 동일한 시스템의 프록시 뒤에 있고 프록시가 remote_addr을 클라이언트 IP로 설정하지 않은 경우 서버가 발생할 수 있습니다. remote_addr은이 서버에 요청을 보내는 IP를 기록합니다. 프록시 위의 모델처럼

Client -> Proxy -> Server 

는, 원격 IP 요지는 프록시 설정이 정확하지 않은 경우, 서버에 대한 원격 IP 요지는 프록시 IP는 클라이언트의 IP입니다.

관련 문제