如何获取客户端的公共IP地址

时间:2015-09-05 06:55:53

标签: php

我需要获取客户端的公共IP地址。

我试过了

getenv('REMOTE_ADDR') and also $_SERVER['REMOTE_ADDR']

但它只返回私人IP ...

2 个答案:

答案 0 :(得分:2)

我用过这个:

function GetIp(){
//IP ADDRESS
   $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';
$AgentIp = $ipaddress;

return $AgentIp;

}

答案 1 :(得分:0)

我正在寻找同样的问题,并找到了基于API的优秀解决方案。

要获取公共IP地址,我们可以使用以下代码:

<?php
$ip = file_get_contents('https://api.ipify.org');
echo "My public IP address is: " . $ip;
?>

API网址网址 https://www.ipify.org/

现在为时已晚,但对其他人来说可能是愚蠢的。