我需要获取客户端的公共IP地址。
我试过了
getenv('REMOTE_ADDR') and also $_SERVER['REMOTE_ADDR']
但它只返回私人IP ...
答案 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/
现在为时已晚,但对其他人来说可能是愚蠢的。