0

我想获得我的用户的公共 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 的最佳方法是什么?谢谢 !

4

1 回答 1

0

您看到的异常可能来自办公环境中代理背后的人。如果您总是想要公共 IP,您可能只需要使用REMOTE_ADDR. 我想你也可以使用这个函数,REMOTE_ADDR如果它返回私有 IP 块中的某些内容,则可以使用它。

于 2013-04-05T22:53:35.350 回答