使用PHP取得用户IP地址的所在地区

Posted 21CTO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PHP取得用户IP地址的所在地区相关的知识,希望对你有一定的参考价值。

这是个简单的函数,是使用www.geoplugin.net的服务来检测网站访问者的国家代码与所在城市。 


您可以使用此数据在表单注册时添加默认隐含值,或将其用于其它有价值的目的,比如阻止从特定区域访问网站。


来源:http://www.apphp.com/index.php?snippet=php-get-country-by-ip


function getLocationInfoByIp(){
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = @$_SERVER['REMOTE_ADDR'];
    $result  = array('country'=>'', 'city'=>'');
    if(filter_var($client, FILTER_VALIDATE_IP)){
        $ip = $client;
    }elseif(filter_var($forward, FILTER_VALIDATE_IP)){
        $ip = $forward;
    }else{
        $ip = $remote;
    }
    $ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));    
    if($ip_data && $ip_data->geoplugin_countryName != null){
        $result['country'] = $ip_data->geoplugin_countryCode;
        $result['city'] = $ip_data->geoplugin_city;
    }
    return $result;
}


来源:21CTO社区


以上是关于使用PHP取得用户IP地址的所在地区的主要内容,如果未能解决你的问题,请参考以下文章

使用 IP 地址自动填写访问者所在国家/地区的表单

根据 IP 地址(地理位置)确定用户语言

php获取用户 地区 ip地址

限制访问特定国家/地区的 PHP 网站

Azure 上的网站如何识别不同国家和地区的用户

PHP 根据IP获取地区查询数据库内容