首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php没有从freegeoip.net抓取邮政编码

php没有从freegeoip.net抓取邮政编码
EN

Stack Overflow用户
提问于 2018-04-26 01:33:44
回答 1查看 218关注 0票数 1

到目前为止,我编写的脚本可以提取ip、lat和long。邮编没有被取下来。我不知道什么是坏的,需要什么才能让它发挥作用。有什么想法吗?

代码语言:javascript
复制
// Function to get the client ip address
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;
}

$ipaddress = getUserIP();

$geoIP  = 
json_decode(file_get_contents("http://freegeoip.net/json/$ipaddress"), true);

$lat = $geoIP['latitude'];
$lon = $geoIP['longitude'];
$zip = $geoIP['zip'];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 01:44:38

旧的freegeoip已经贬值,新的服务ip堆栈提供了免费的api访问。下面是一个简单的curl调用,它将获得您想要的信息(还有更多)。

代码语言:javascript
复制
$url = 'http://api.ipstack.com/134.201.250.155?access_key=YOURKEY';  
$ch = curl_init();  

curl_setopt($ch, CURLOPT_URL, $url);  
curl_setopt($ch, CURLOPT_HEADER, 0);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   

$output = curl_exec($ch);  

$api_result = json_decode($output, true); 

$lat = $api_result['latitude']; 
$lon = $api_result['longitude']; 
$zip = $api_result['zip'];

echo $zip;
echo $lat;
echo $lon;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50033560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档