2017-09-21 6 views
0

내 웹 사이트에서 동일한 IP에서 등록한 사용자를 추적하고 싶습니다. 다음 코드를 사용하여 사용자의 IP를 얻으려고합니다Ip가 동적 인 경우 사용자를 추적하는 방법

if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet 
{ 
    $ip=$_SERVER['HTTP_CLIENT_IP']; 
} 
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy 
{ 
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
} 
else 
{ 
    $ip=$_SERVER['REMOTE_ADDR']; 
} 

그러나 IP 주소가 계속 변경된다는 것을 알았습니다. 사용자를 추적하는 다른 방법이 있습니까?

+0

나는이 컨텍스트에서'HTTP_X_FORWARDED_FOR'을 (를) 신뢰하는 것이 좋을지 모르겠다. – Scuzzy

답변

-1
// Function to get the client ip address 
function get_client_ip_server() { 
    $ipaddress = ''; 
    if ($_SERVER['HTTP_CLIENT_IP']) 
     $ipaddress = $_SERVER['HTTP_CLIENT_IP']; 
    else if($_SERVER['HTTP_X_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_X_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_X_FORWARDED']; 
    else if($_SERVER['HTTP_FORWARDED_FOR']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; 
    else if($_SERVER['HTTP_FORWARDED']) 
     $ipaddress = $_SERVER['HTTP_FORWARDED']; 
    else if($_SERVER['REMOTE_ADDR']) 
     $ipaddress = $_SERVER['REMOTE_ADDR']; 
    else 
     $ipaddress = 'UNKNOWN'; 

    return $ipaddress; 
} 
echo get_client_ip_server(); 
+0

추가 정보'HTTP_X_FORWARDED_FOR'는 쉼표로 구분 된 IP 주소를 포함 할 수 있습니다. 쉼표로 구분하고 트리밍하고 세트의 첫 번째 항목을 선택하십시오. – Scuzzy

+0

@Awais Mustafa는 동적 IP에서도 동일한 값을 반환합니까? – Developer5

+0

이것은 프록시 서버를 사용하고 있어도 사용자의 실제 IP를 얻으려고 시도하는 보일러 플레이트 코드입니다 (귀하가 속성없이 복사/붙여 넣었을 것으로 의심됩니다). 그것은 질문에 대해 물어 보는 IP 주소를 동적으로 할당 한 사용자를 다루는 데 아무 것도하지 않습니다. – Quentin