我想获取用户的公共IP地址,但我的代码获取私有IP ...你知道这是什么问题吗?
我的代码:
function get_ip()
{
$ips = "";
if(isset($_SERVER["HTTP_CLIENT_IP"]))
$ips .= ';'.$_SERVER["HTTP_CLIENT_IP"];
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ips .= ';'.$_SERVER["HTTP_X_FORWARDED_FOR"];
if(isset($_SERVER["HTTP_X_FORWARDED"]))
$ips .= ';'.$_SERVER["HTTP_X_FORWARDED"];
if(isset($_SERVER["HTTP_FORWARDED_FOR"]))
$ips .= ';'.$_SERVER["HTTP_FORWARDED_FOR"];
if(isset($_SERVER["HTTP_FORWARDED"]))
$ips .= ';'.$_SERVER["HTTP_FORWARDED"];
if(isset($_SERVER["REMOTE_ADDR"]))
$ips .= ';'.$_SERVER["REMOTE_ADDR"];
return $ips;
}
有时函数返回ip为“10.46.40.246”...什么是获取公共IP的最佳方法? 谢谢你!
答案 0 :(得分:0)
您所看到的异常可能来自办公环境中代理背后的人。如果您总是想要公共IP,那么您可能只需要REMOTE_ADDR
。我想如果它在私有IP块中返回某些内容,你也可以使用这个函数并返回REMOTE_ADDR
。