通过IP地址获取当前地理位置(省份)的接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/json_ligege/article/details/53396390

1.淘宝接口通过ip获取地址

/**
   *  通过淘宝IP地址库获取IP位置
   *1. 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]
   *2. 响应信息:(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商
   *3. 返回数据格式Json:
   *其中code的值的含义为,0:成功,1:失败。
   */
  function getTaobaoAddress(){
      $ipContent   = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=");
      $jsonData = explode("=",$ipContent);
      $jsonAddress = substr($jsonData[1], 0, -1);
      return $jsonAddress;
  }

返回值:

{
    "code": 0,
    "data": {
        "country": "中国",
        "country_id": "CN",
        "area": "华南",
        "area_id": "800000",
        "region": "广东省",
        "region_id": "440000",
        "city": "广州市",
        "city_id": "440100",
        "county": "",
        "county_id": "-1",
        "isp": "教育网",
        "isp_id": "100027",
        "ip": "218.192.3.42"
    }
}


2.新浪接口通过ip获取地址

 /*   
   * 新浪通过IP地址获取当前地理位置(省份)的接口 
   * 新浪的接口是,返回json    
   * http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 
   * http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42 
   * 参数有两个:format和ip
   * 1)IP:不传入ip值时默认为本机ip,也可以指定特定的ip地址;
   * 2)format:返回给客户端的数据格式有js和json格式:
   */   
  public function getSinaAddress(){
      $ipContent   = file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=");
      $jsonData = explode("=",$ipContent);
      $jsonAddress = substr($jsonData[1], 0, -1);
      return $jsonAddress;
  }
返回值:

{
    "ret": 1,
    "start": -1,
    "end": -1,
    "country": "中国",
    "province": "广东",
    "city": "广州",
    "district": "",
    "isp": "",
    "type": "",
    "desc": ""
}

觉得哪个合适,就选用哪个;

不过有一个问题要注意,这两个接口毕竟是免费的,

自己练习的时候可以用,但在正规项目中还是用企业提供的接口;

因为这些接口的参数,如果改变你的项目就会出现问题

展开阅读全文

没有更多推荐了,返回首页