我知道这个问题被问了很多次,但我没有得到正确的答案。在这里,我使用以下代码从我的托管网站获取最终用户系统 IP 地址。
function ipCheck() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
echo ipCheck();
在我的本地网络中,此代码运行良好。它正确地给了我的本地 IP 192.168.xxx.xxx。但是当我在我的网站上运行这段代码时,它给出了一些其他的 IP 地址。