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

Php 如何获取客户端的公共IP地址,php,Php,我需要获取客户端的公共IP地址 我已经试过了 getenv('REMOTE_ADDR') and also $_SERVER['REMOTE_ADDR'] 但是它只返回私有ip…我用过这个: function GetIp(){ //IP ADDRESS $ipaddress = ''; if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP_CLIENT_IP'); else if(getenv('HTTP_X_FORWAR

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

我已经试过了

getenv('REMOTE_ADDR') and also $_SERVER['REMOTE_ADDR']
但是它只返回私有ip…

我用过这个:

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;

}

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

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

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

API站点Url:
https://www.ipify.org/


现在问这个问题已经太迟了,但对其他人来说可能是有帮助的

您是否在本地计算机上运行服务器?IP地址对服务器没有实际价值,因为它们与之相关的拓扑不在服务器控制之下。所以地址不能被信任。那又有什么用呢?可能是重复的,伙计,重复的问题和你的问题几乎完全一样!它返回服务器IP而不是客户端IP