PHP获取IP地址所在的地理位置
PHP获取IP地址所在的地理位置
知道访问者的IP地址,如何获得该IP所在的地理位置呢?我首先想到的是ip138,因为我经常使用这个网站来查询IP所在地。但是,这个网站查询到的结果只精确到省,让人不太满意。经过网上查询,腾讯的IP分享计划(http://fw.qq.com/ipaddress)和新浪的IP查询接口(http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js)很不错,能够精确到市或县一级,因此就分别使用这两个查询接口了。 一、PHP利用腾讯IP分享计划获取IP地理位置腾讯的IP分享计划的查询接口连接是:http://ip.qq.com/cgi-bin/searchip,该连接后面会带有一个get参数searchip1,即searchip1=你要查询的IP地址。 使用方法是:采用PHP向http://ip.qq.com/cgi-bin/searchip发送http get request,然后获取相应,获得相应结果后,将结果用正则表达式将需要的地理位置信息提取出来就OK了。当然,PHP发送get请求的方法有很多,我用curl来模拟http请求的方法。 Curl是PHP的一个扩展,进行测试之前,先确认PHP已经加载了curl扩展。打开PHP配置文件php.ini,搜索“extension=php_curl.dll”,将其前面的分号(;)去掉,然后重启HTTP服务器,查看phpinfo(),若能看到curl的信息,说明PHP扩展curl成功。 接下来就简单了,一段代码就可以搞定:
view plain copy
使用getIPLoc_QQ("183.37.209.57")即可得到IP地址所在的地址位置。 腾讯IP分享计划这个网站用的是gb2312编码,获取的响应需要用mb_convert_encoding函数进行编码转换,否则会有乱码。 二、PHP利用新浪IP查询接口获取IP地理位置新浪的IP查询接口地址是:http://int.dpool.sina.com.cn/iplookup/iplookup.php,该连接后面也带有get参数,参数ip=你要查询的IP地址,format=返回的查询结果格式。为了方便起见,返回的格式采用json,即format=json,因此,PHP出来扩展curl外,还得扩展json:
view plain copy
使用getIPLoc_sina("183.37.209.57")即可得到IP地址所在的地址位置。 当然,如果显示的时候对每个IP地址都用上述函数查询一次,会很慢很慢……最好是每来一个访客访问页面的时候,就调用函数查询其IP对应的地理位置,然后存入数据库。等到显示的时候直接从数据库读取就好了,这样效率会高一些。 测试页面: http://www.sunchis.com/public/CodeTest/00000295_ipLocation.php 测试源码下载: http://dl.dbank.com/c042gwqtrg 测试结果截图: (责任编辑:admin) |
PHP获取IP地址所在的地理位置相关推荐
- PHP 获取 IP 地址所在的地理位置信息/城市
源码:https://github.com/hacfins/thinkphp6-api/blob/master/app/common/third/MapService.php 类似的博客很多,五花八门 ...
- php获取ip地址所在的地理位置的实现
1,通过腾讯或者新浪提供的接口来获取(新浪和腾讯类似) <?php function getIPLocation($queryIP){ $url = 'http://ip.qq ...
- phpip地址查询_PHP获取IP地址所在的地理位置
/* *根据新浪IP查询接口获取IP所在地 */ function getIPLoc_sina($queryIP){ $url = 'http://int.dpool.sina.com.cn/iplo ...
- php 获取ip地址所在的区域
/** * get_ip_lookup 获取ip地址所在的区域 * @param null $ip * @return bool|mixed */ function get_ip_lookup($ip ...
- php 获取客户端位置信息_PHP中获取客户端IP地址所在的地理位置信息
如何获得该IP所在的地理位置呢?腾讯的IP分享计划(http://fw.qq.com/ipaddress)和新浪的IP查询接口(http://int.dpool.sina.com.cn/iplooku ...
- python地址多少位_Python获取IP地址对应的地理位置信息!
在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227 -435- 450可以来了解一起进步一起学习!免费分享视频资料 原理简介 利用了三个可以查询ip地址对应归属地的网站 ...
- PHP获取IP地址以及IP地址所在位置
获取IP地址: function getIP(){if (isset($_SERVER)) {if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {$realip ...
- linux下载python的地址_Linux下Python获取IP地址的代码
<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...
- 获取IP地址信息的API合集
今天给大家分享一些获取IP地址信息的API合集 一.ip.cn查询网获取当前客户端IP 二.ip查询网获取当前客户端IP 三.百度获取IP地址信息 四.本站获取当前客户端IP信息 五.其他平台获取IP ...
最新文章
- phpinfo 信息利用
- iOS NSUserDefaults 简介 NSUserDefaults 存储自定义对象
- 02.elasticsearch-meta-field元字段
- 25 个在 Web 中嵌入图表的免费资源
- JDK8HashMap的扩容核心解读,尾插法
- OMNeT学习之OMNeT安装与运行
- 黑色响应式全屏滚动主页源码
- .net WebApi 批量文件进行压缩zip以二进制流传输至前端(Vue)下载
- PAT1021. 个位数统计
- java jasper 生成xlsx_JasperReports导出到xlsx,而不是xls
- laravel的blade模板的布局嵌套
- python积最大的分解_pyfactor
- NVIDIA Nsight Eclipse 安装
- 20篇聊天机器人领域必读论文速递!
- matlab动态更新数组值,Matlab动态数组实现
- 基于springboot点餐系统java web订餐管理平台源码
- talfta---动态故障树分析软件产品介绍
- Oracle Linux网卡参数默认设置导致ORA-603
- power supply框架
- echarts雷达图文字不显示_ECharts雷达图指示器名称的设置
热门文章
- JSP中页面跳转response.sendRedirect()和request.getRequestDispatcher()的区别
- java8新特新:接口流-Stream()接口和所有方法(map,foreach,filter,count,distinct,limit,collect,skip,sorted)
- oracle spa sta 使用,Oracle的SQL Tuning Advisor(STA) 到底做了什么?
- ajax nginx 转发 sessionid_Nginx+Apache实现动静分离 - 孙天飞
- 剑指offer(34-40题)详解
- 在R.java中新建自定义的新类
- javascript之DOM总结
- 在linux命令行 下学习编写java
- 剑指Offer #09 变态跳台阶(数列推导)
- python type help copyright_Python关于import的实验(8)__init__.py文件内部代码的执行以及内部的导入和内部的变量...