【问题标题】:How to get real client ip or geolocation in php?如何在 php 中获取真实的客户端 IP 或地理位置?
【发布时间】:2015-12-02 16:50:06
【问题描述】:

我的网站上有一个用户注册系统。我正在使用 ip-api.com 的 xml ip api 来检测用户的位置。我的问题是我使用的 php 脚本返回了用户的代理或错误的 IP 地址,这就是为什么我无法在他们的个人资料中设置正确的位置。

我使用以下条件语句来获取 ip 地址:

   $ip=$_SERVER["REMOTE_ADDR"];
 if(empty($ip))
 {$ip=

$_SERVER["HTTP_X_FORWARDED_FOR"];}

它为某些用户返回错误的 IP 地址。

有没有其他方法可以在 php 中获取真实的 ip 或地理位置?

【问题讨论】:

标签: php ip


【解决方案1】:

你可以看到这个话题:How to get Real IP from Visitor?

function getUserIP()
{
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];
    if(filter_var($client, FILTER_VALIDATE_IP))
    {
        $ip = $client;
    }
    elseif(filter_var($forward, FILTER_VALIDATE_IP))
    {
        $ip = $forward;
    }
    else
    {
        $ip = $remote;
    }
    return $ip;
}
$user_ip = getUserIP();

【讨论】:

  • 如果您认为这个问题是重复的,请相应地标记它。但不要只是复制其他答案。
猜你喜欢
  • 2013-08-18
  • 2012-08-04
  • 2021-07-05
  • 2021-10-22
相关资源
最近更新 更多