2016-12-01 8 views
2

[YT:DewClarke]のビデオのの実際の外部IPアドレスを収集する方法については、ビデオを視聴しています。彼のコードは彼のウェブサイトに完璧に働いたが、は鉱山上のIPV6バージョンとなった:2701:0564:D210:5be4:5b0b:8630:4c99:a3be(プライバシー上の理由のために、ランダム化)。 どうすればのような216.3.128.12(プライバシーの理由から無作為化されたもの)を得ることができますか?正確な外部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(); 
?> 

私は「エコー」のデータ後でラインダウン...

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

いくつかの有用な情報は、私が000WebHost.comを使用することで、CloudFlare.comを通してそれを実行し、それは、PHPで書かれています私はそのページに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'; 
関連する問題