我的PHP中有一些代码试图获取用户的IP地址:
// Test if it is a shared client
if (! empty($_SERVER['HTTP_CLIENT_IP'])) {
$userIP = $_SERVER['HTTP_CLIENT_IP'];
}
// Is it a proxy address?
elseif (! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$userIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else {
$userIP = $_SERVER['REMOTE_ADDR'];
}
然后我使用$userIP
function将INET_ATON()
存储在MySQL表中,以将字符串转换为整数。我可以使用MySQL的INET_NTOA()
function。
大部分时间都很完美。 但是,有时我会获得类似0.0.7.102
的IP。
我知道这些功能不适用于IPv6,但这个问题可能是由其他原因造成的吗?是否有很多人使用IPv6?我该如何处理?
谢谢!