我有一个简单的PHP脚本,当用户连接到我的网站时记录用户的IP地址,我的网站使用CloudFlare。我使用$_SERVER["HTTP_CF_CONNECTING_IP"];
返回客户端IPV4地址,以便可以使用日期和时间登录到文件中,但有时会记录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地址。导致这个问题的原因是什么?
答案 0 :(得分:4)
我的朋友不可能。您的访客不能同时使用 IPv4 或 IPv6 呼叫您的服务器。他使用的巫婆IP取决于他的网络配置和你的。
未经他的许可,你无法挖掘他的信息。
答案 1 :(得分:0)
您可以通过手动观看此结果来查看和检查所有客户端发送的标头。
data-attribute