私は自分の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アドレスを記録できます。そして、この問題の原因は何ですか?
実は、私はIPV4にIPV6を変換するPHPスクリプトを発見し、それが唯一のものであるが、記録されますIPV6アドレスがCloudFlareのために行くことです、作品 –