0

我的 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存储在 MySQL 表中。我可以使用 MySQL 的function检索这个值。INET_ATON() INET_NTOA()

它在大多数情况下都能完美运行。但是,有时我会得到一个 IP 0.0.7.102,例如。

我知道这些功能不适用于 IPv6,但这个问题可能是由其他原因引起的吗?已经有很多人在使用 IPv6 了吗?我该如何处理?

谢谢!

4

0 回答 0