1,通过腾讯或者新浪提供的接口来获取(新浪和腾讯类似)

<?php 

   function getIPLocation($queryIP){ 

    $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;

//如果是新浪,这里的URL是:'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP; 

    $ch = curl_init($url); 

    curl_setopt($ch,CURLOPT_ENCODING ,'gb2312'); 

    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回 

    $result = curl_exec($ch); 

    $result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码 

 //   print_r($result);

    curl_close($ch); 

    preg_match("@<span>(.*)</span></p>@iU",$result,$ipArray); //匹配标签,抓取查询到的ip地址(以数组的形式返回)

    $location = $ipArray[0]; 

    return $location; 



$ip = getIPLocation('111.186.116.208');//将ip传入进来

print_r($ip);//打印结果

?>

如果把提交的$result打印出来的话,显示如下:

最后显示的结果为中国上海市  教育

2,通过淘宝提供的接口

<?php
header("Content-type:text/html;charset=utf-8");//设置编码格式
function getCity($ip)
{
   $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
   print_r(file_get_contents($url));
   $ipinfo=json_decode(file_get_contents($url)); 
   if($ipinfo->code=='1'){
       return false;
   }
   $city = $ipinfo->data->region.$ipinfo->data->city;
   return $city; 
}

 

// example

print_r(getCity("111.186.116.208"));

?>

打印出-打开的url地址后,可以发现,它是以json格式返回数据的,因此需要进行解码(json_decode)

最后得到的结果为:上海市上海市

参考文章:

PHP淘宝IP数据获取用户IP及地理位置                     http://www.111cn.net/phper/php/48159.htm

使用PHP+淘宝IP地址库接口获得IP所属地理位置  http://www.ttlsa.com/php/to-obtain-ip-location-using-the-php-taobao-ip-address-database-interface/

PHP获取IP地址所在的地理位置                                 http://jingyan.baidu.com/article/154b46315e74af28ca8f4137.html

php获取ip地址所在的地理位置的实现的更多相关文章

  1. PHP获取IP地址所在的地理位置

    1.http://ip.qq.com/cgi-bin/searchip?searchip1=XXX 2.http://int.dpool.sina.com.cn/iplookup/iplookup.p ...

  2. Linux下Python获取IP地址

    <lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...

  3. 获取ip地址及城市信息

    大家好,今天给大家分享的是一个简单的知识获取登录用户的ip地址及城市信息,lz是一个小白,如果有哪些错误的地方  欢迎大家指出 东西很简单,直接上代码 [HttpPost] public string ...

  4. thinkphp获取ip地址及位置信息

    ThinkPHP\Common\funcitons.php下有一个get_client_ip()能够获取ip地址 但是有时候不够准确 找到了下面一段来 function get_client_ip($ ...

  5. PHP 获取IP地址位置信息「聚合数据API」

    聚合数据 提供了[查询IP所属区域]的服务接口,只需要以 GET 请求的方式向 API 传入 IP地址 和 APPKEY 即可获得查询结果. 这里的难点主要在于如何通过PHP获取客户端IP地址,以及如 ...

  6. windows下获取IP地址的两种方法

    windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

  7. 【PHP开发篇】一个统计客户端商机提交的获取IP地址

    1.对客服提交数据的ip地址记录. 获取ip地址的方法: public function getIP() { global $ip; if (getenv("HTTP_X_REAL_IP&q ...

  8. 获取 IP 地址

    package j2se.core.net.base; import java.net.InetAddress;import java.net.UnknownHostException; public ...

  9. js获取IP地址方法总结_转

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

随机推荐

  1. 又是一个Notepad++的问题

    昨天刚刚解决了Style Configurator无法保存的问题,今天继续解决另一个. 装好Notepad++之后,可以在右键菜单里面看到 Edit With Notepad++,win7里面挺好用的 ...

  2. GVRP 的工作机制和工作模式

    GVRP 简介 GVRP 基于 GARP 的工作机制来维护设备中的 VLAN 动态注册信息,并将该信息向其他设备传播:当设备启动了 GVRP 之后,就能够接收来自其他设备的 VLAN 注册信息,并动态 ...

  3. Python 的反射机制

    什么叫做反射 利用字符串的形式去对象(模块)中操作(查找/添加/获取/删除)成员,一种基于字符串的事件驱动. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以 ...

  4. Logback中使用TurboFilter实现日志级别等内容的动态修改

    可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢?所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别.我们在使用Java开发 ...

  5. Python中return self的用法

      在Python中,有些开源项目中的方法返回结果为self. 对于不熟悉这种用法的读者来说,这无疑使人困扰,本文的目的就是给出这种语法的一个解释,并且给出几个例子.   在Python中,retur ...

  6. [转]Docker(三):Dockerfile 命令详解

    本文转自:https://blog.csdn.net/ityouknow/article/details/79600406 上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dock ...

  7. mybatis_ The content of element type association must match (constructor,id,result,ass ociation,collection,discriminator)

    一般遇到这种问题肯定要看一看association中元素编写顺序, <resultMap id="orderRslMap" type="orders"&g ...

  8. 列表 ul ol dl 和 块级标签和行及标签之间的转换

    1. 无序列表 有序列表 自定义列表 1,无序列表 第一 你不必须有子标签  <li></li> 第二 ul天生自带内外边距 List-style的属性值 circle(空心圆 ...

  9. Springboot使用Filter以及踩过的坑

    Springboot使用Filter以及踩过的坑 在Springboot中使用Filter有两种方式,注解方式,注册bean方式 一.注解@WebFilter 1.实现Filter接口(javax.s ...

  10. 减少页面加载时间的n种方法

    减少HTTP请求 1:减少调用其他页面.文件的数量 2:使用css spirit , 减少图片加载次数 压缩js,css代码 1:一般js.css文件中存在大量的空格.换行.注释,这些利于阅读,如果能 ...