2016-12-01 20 views
2

를 검색합니다. 그의 코드 는 자신의 웹 사이트에 완벽하게 작동하지만, 에 IPV6 버전 결과 : 2701 : 0564 : D210 : 5be4 : 5b0b : 8630 : 4c99 : a3be (개인 정보 보호를 위해 무작위). IPV4216.3.128.12 (개인 정보 보호를 위해 무작위로 지정)과 어떻게 조합 할 수 있습니까?내가 [<em>DewClarke</em> YT]에서 사용자</strong>의 실제 외부 IP 주소 <strong>를 수집하는 방법에 대한 비디오를보고 있었다 정확한 외부 IPv4 주소 PHP

<?php 
    function getUserIP(){ 
     $client = @$_SERVER['HTTP_CLIENT_IP']; 
     $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; 
     $remote = $_SERVER['REMOTE_ADDR']; 
     if(filter_var($client, FILTER_VALIDATE_IP)){ 
     $ip = $client; 
     }elseif(filter_var($forward, FILTER_VALIDATE_IP)){ 
     $ip = $forward; 
     }else{ 
     $ip = $remote; 
     } 
     return $ip; 
    } 
    $user_ip = getUserIP(); 
?> 

I "에코"데이터 나중에 선 아래로 ...

<div id="LoggedAs"><span><?php echo $user_ip;?></span></div> 

몇 가지 유용한 정보가 PHP로 작성, 나는 000WebHost.com를 사용하는 것이, CloudFlare.com를 통해 실행하는 것입니다, 그 페이지에 SSL을 강제합니다. DewClarke의 소스 코드는 여기에서 찾을 수 있습니다. DewClarke's Source Code

+0

IPV6는 내가 IPV4를 찾고 있어요 실제 IP –

+0

입니다 IPV6이 아니라 네, 알고 있습니다. –

+0

IPV6 주소의 작은 숫자 만 IPV4에 직접 매핑 될 수 있으므로 알 수 없다고 생각합니다. –

답변

1

코드가 잘된 것 같습니다. 이것은 Cloudflare 설정처럼 보입니다. Cloudflare -> (귀하의 도메인) -> Network로 이동하십시오. 그런 다음 IPv6 Compatibility를 OFF로 설정하십시오.

IPv6가 전세계 네트워크 연결 성장에 중요하기 때문에이 설정을 사용으로 설정하는 것이 좋습니다.

또한 Cloudflare에 의해 제공으로 연결하는 사용자의 IP 주소와 국가를 얻는 대신에이 코드를 사용하여 관심이있을 수 :

$_SERVER['REMOTE_ADDR'] = isset($_SERVER['HTTP_CF_CONNECTING_IP']) ? $_SERVER['HTTP_CF_CONNECTING_IP'] : $_SERVER['REMOTE_ADDR']; 
$_SERVER['REMOTE_COUNTRY'] = isset($_SERVER['HTTP_CF_IPCOUNTRY']) ? $_SERVER['HTTP_CF_IPCOUNTRY'] : 'Unknown';