【问题标题】:Get country name from google maps in php从 php 中的谷歌地图获取国家名称
【发布时间】:2018-02-21 09:43:58
【问题描述】:

我有用户 IP 地址。我想要那个用户的国家名称。我不想在 php 中使用 geoIp(plugin) 所以有没有办法在没有 JS 支持的情况下从谷歌地图获取国家名称(通过 ajax 发送国家名称不是选项)?

【问题讨论】:

    标签: php google-maps


    【解决方案1】:

    没有 JS 是可以的,但仍然需要使用地理插件。你可以使用这个网站上的一个http://www.geoplugin.com/

    <?php
    
    $ip = "41.164.194.81";
    $geo     = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$ip"));
    $country = $geo["geoplugin_countryName"];
    // $city    = $geo["geoplugin_city"];  if you need the city as well
    
    
    echo $country;
    
    ?>
    

    结果:

    南非

    【讨论】:

    • 不想使用任何地理插件。谷歌地图可以吗?
    【解决方案2】:

    Google API 没有任何与 IP 反向或 IP 位置相关的 API(据我所知)

    如果您愿意,可以使用其他免费网站。

    您可以使用https://freegeoip.net/json/78.194.1.99,它是免费的,并且限制设置为 10000 次通话/小时。

    代码:

    <?php
    
       $ip = '78.194.1.99';
       $data = @json_decode(file_get_contents('https://freegeoip.net/json/' . $ip));
       $country = $data->country_name;
    

    JSON 结果:

    {
    "ip": "78.194.1.99",
    "country_code": "FR",
    "country_name": "France",
    "region_code": "IDF",
    "region_name": "Île-de-France",
    "city": "Paris",
    "zip_code": "75009",
    "time_zone": "Europe/Paris",
    "latitude": 48.8718,
    "longitude": 2.3399,
    "metro_code": 0
    }
    

    顺便问一下,你为什么不想使用地理插件?

    【讨论】:

      猜你喜欢
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多