2017-02-23 4 views
2

私は自分のWebサイトに接続するときにユーザーのIPアドレスを記録する簡単なPHPスクリプトを持っています。私のWebサイトはCloudFlareを使用しています。私は$_SERVER["HTTP_CF_CONNECTING_IP"];を使用してクライアントのIPV4アドレスを返します。そのため、日付と時刻のファイルに記録することができますが、IPV6アドレスを記録することもあります。私のログにCloudflareヘッダーIPV6アドレスを返す

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { 
    $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; 
} 
$filename = 'loggedips.txt'; 
$myfile = fopen($filename, "r") or die("Unable to log IP!"); 
$string = fread($myfile,filesize($filename)).date(DATE_RFC2822)." -- $ip\r\n"; 

$fp = fopen($filename, 'w') or die("Unable to log IP!"); 
fwrite($fp, $string); 
fclose($fp); 

私はIPv4アドレスのミックスを見ているとIPV6は
Thu, 23 Feb 2017 19:08:40 +0100 -- 99.253.44.66
Thu, 23 Feb 2017 19:10:14 +0100 -- 2003:00o1:4hc0:e68c:3113:7l06:2qf1:6e84

およびロギングIPV6アドレスをアドレス指定することはので、私はこの問題を解決可能性がどのように思っていた私には使用されません私はちょうどIPV4アドレスを記録できます。そして、この問題の原因は何ですか?

答えて

3

私の友人はできません。あなたのゲストは、のIPv4またはのIPv6でサーバに電話することはできません。彼が使用する魔法使いのIPはあなたのネットワーク構成とあなたのものによって決まります。

あなたは彼の許可なしに彼の情報を掘ることはできません。

+0

実は、私はIPV4にIPV6を変換するPHPスクリプトを発見し、それが唯一のものであるが、記録されますIPV6アドレスがCloudFlareのために行くことです、作品 –

0

この結果を手動で見て、すべてのクライアント送信ヘッダーを確認して調べることができます。

var_dump($_SERVER);die(); 
関連する問題