duanluangua8850 2019-08-18 19:33
浏览 302
已采纳

我从同一网络中的不同计算机获得相同的IP地址

I'm trying to get the ip address of the client so that they only use one account per device. However, when I use the following code, I found that the same ip address returned from the computers in the same network.

function get_client_ip() {
        $ipaddress = '';
        if (getenv('HTTP_CLIENT_IP'))
            $ipaddress = getenv('HTTP_CLIENT_IP');
        else if(getenv('HTTP_X_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
        else if(getenv('HTTP_X_FORWARDED'))
            $ipaddress = getenv('HTTP_X_FORWARDED');
        else if(getenv('HTTP_FORWARDED_FOR'))
            $ipaddress = getenv('HTTP_FORWARDED_FOR');
        else if(getenv('HTTP_FORWARDED'))
            $ipaddress = getenv('HTTP_FORWARDED');
        else if(getenv('REMOTE_ADDR'))
            $ipaddress = getenv('REMOTE_ADDR');
        else
            $ipaddress = 'UNKNOWN';

        return $ipaddress;
    }

How can I get the correct ip address from different devices?

  • 写回答

1条回答 默认 最新

  • donglu5041 2019-08-18 19:57
    关注

    Most likely those computers are going from network through the router with NAT enabled. In that case you will see only ip address of that router, nothing you can do with it.

    But you can check combination of ip address and user-agent header:

    $_SERVER['HTTP_USER_AGENT']
    

    Unfortunately, there is no garaunteed way to 100% check the origin of request, but combination of ip address and user-agent could work for simple scenario.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?