无法从地理位置获取城市名称

时间:2016-01-04 12:09:01

标签: javascript php jquery geolocation

我使用以下代码获取国家和城市名称

<?php 
    $user_ip=  getenv('REMOTE_ADDR');
    $geo= unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));

    $city= $geo["geoplugin_city"]; 
    $country= $geo["geoplugin_countryName"]; 
?>

当我回音它打印国家名称但是对于城市它说

Undefined index: geoplugin_city

使用var_dump $geo我在数组中获得[geoplugin_city]但是当我var_dump($city) i get null

请帮我解决这个问题

这是我的var_dump($ geo)结果

Array ( [geoplugin_request] => 83.110.15.6 
        [geoplugin_status] => 206 
        [geoplugin_credit] => Some of the returned data includes GeoLite 
                              data created by MaxMind, available 
                              from http://www.maxmind.com. 
        [geoplugin_city] => 
        [geoplugin_region] => 
        [geoplugin_areaCode] => 0 
        [geoplugin_dmaCode] => 0 
        [geoplugin_countryCode] => AE 
        [geoplugin_countryName] => United Arab Emirates 
        [geoplugin_continentCode] => AS 
        [geoplugin_latitude] => 24 
        [geoplugin_longitude] => 54 
        [geoplugin_regionCode] => 
        [geoplugin_regionName] => 
        [geoplugin_currencyCode] => AED 
        [geoplugin_currencySymbol] => Dh 
        [geoplugin_currencySymbol_UTF8] => Dh 
        [geoplugin_currencyConverter] => 3.6719 )

1 个答案:

答案 0 :(得分:1)

会发生这种情况,因为GeoPlugin会让您状态200 ,这意味着您所在国家/地区无法使用城市信息。

如果你试试这个IP就好了: 119.30.127.20(巴基斯坦)

如果城市和州字段为空,它会返回status 200

但是当您尝试此IP时:168.143.160.187(美国)

它会向您status 206返回城市和州信息。

以下是状态索引:

[geoplugin_status] => 200

有关详细信息,请访问GeoPlugin Web Services并查看您所在国家/地区的信息,了解是否提供了城市级信息。

  

<强>更新

     

GeoPlugin仅为阿联酋提供 3%城市级信息