API之IP地址查询---权威的IP地址查询接口集合

原文地址:http://yushine.iteye.com/blog/1717586

推荐实用IP138

http://www.baidu.com/s?wd=IP&rsv_spt=1&issp=1&f=8&rsv_bp=0&ie=utf-8&tn=19045005_9_pg&rsv_enter=1&rsv_sug3=2&rsv_sug4=60&rsv_sug1=1&rsv_sug2=0&inputT=520   百度排行第一

接口如下:更换地址即可

http://opendata.baidu.com/api.php?query=42.196.245.48&co=&resource_id=6006&t=1412300361645&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery1102026811896078288555_1412299994977&_=1412299994981

----------------------------------------------

因为要做天气预报这件事,发现搜狐好像没有一个实时的判断浏览器所在城市的方法——已有的都是把判断结果放在某定期失效的cookie里,这样可以减少服务器压力。

仔细一想就觉得这玩意其实对资源消耗没有那么大,于是就要求整一个实时的。。。。。然后就觉得该接口也可以给外部开发者调用:http://pv.sohu.com/cityjson

这个接口是给浏览器JS来调用的,缺省返回 gbk 编码的数据;如果你的应用是 UTF-8,加一个参数http://pv.sohu.com/cityjson?ie=utf-8

目前这个接口只是搜狐在用,所以参数很简单,返回的那个 cid 还很魔幻;如果觉得这个接口确实有帮助,可以把需求发给俺们来继续改进之

未来也许搜狐会提供给互联网开发者更多的接口和服务。

BTW:写这篇blog之前突然想到,中国互联网应该有类似的接口了吧,一查之下果然 QQ 有一个http://fw.qq.com/ipaddress ,但好像不是官方支持,而且它只有 gbk,哇咔咔

=================================================================

各门户/大型网站IP地址查询接口:

腾讯 : http://fw.qq.com/ipaddress 
直接返回本机的IP地址对应的地区,准确度较高。
其实还可以利用腾讯的IP分享计划根据IP地址来获取更准确的IP地址,详看教程:http://bbs.pinluo.com/thread-28505-1-1.html

新浪 :http://counter.sina.com.cn/ip?ip=IP 地址
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=IP地址
返回Js数据,感觉不是很精确,可以把问号后面的去掉,直接返回本机对应的IP所在地。

搜狐 :http://pv.sohu.com/cityjson?ie=utf-8 或者http://txt.go.sohu.com/ip/soip

网易有道 :http://www.youdao.com/smartresult-xml/search.s?type=ip&q=0.0.0.0 
把0.0.0.0换成需查询的IP地址即可,以下同,这个应该是用纯真的数据库。
(还可查手机号码)
http://www.youdao.com/smartresult-xml/search.s?type=mobile&q=13888880000

太平洋电脑网 :http://whois.pconline.com.cn/?ip=0.0.0.0 
把0.0.0.0换成IP地址,页面上还有其他无关内容。

IP138 :http://www.ip138.com/ips.asp?ip=IP 地址
准确度非常高,IP经常更新。

纯真IP数据库 :http://www.cz88.net/

====================================================

我用新浪打开是显示:1 116.1.204.0 116.1.205.255 中国 广西 崇左 电信 广西南宁市电信
用腾讯打开是显示:var IPData = new Array("116.1.205.88","","广西","南宁市");
www.ip138.com 打开是显示:116.1.205.88 本站主数据:广西自治区南宁市 电信

很明显,新浪是错误的,它IP显示错误,并且将南宁市显示为崇左市了。这是两个不同的城市啊!

===========调用方法示例=====================

使用JS代码进行调取:

Js代码 
<script language="javascript" type="text/javascript" src="http://fw.qq.com/ipaddress"></script>     <script>document.write("你的IP是:"+IPData[0]+",来 自:"+IPData[2]);</script>  
<script language="javascript" type="text/javascript" src="http://fw.qq.com/ipaddress"></script> <script>document.write("你的IP是:"+IPData[0]+",来 自:"+IPData[2]);</script>

使用PHP解析的方法:

Php代码 
<?php   function getIpPlace(){    $ip=file_get_contents("http://fw.qq.com/ipaddress");    $ip=str_replace(‘"‘,‘ ‘,$ip);    $ip2=explode("(",$ip);    $a=substr($ip2[1],0,-2);    $b=explode(",",$a);    return $b;   }   $ip=getIpPlace();   print_r($ip);   ?>  
<?phpfunction getIpPlace(){ $ip=file_get_contents("http://fw.qq.com/ipaddress"); $ip=str_replace(‘"‘,‘ ‘,$ip); $ip2=explode("(",$ip); $a=substr($ip2[1],0,-2); $b=explode(",",$a); return $b;}$ip=getIpPlace();print_r($ip);?>

=============================================================

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成功。

接下来就简单了,一段代码就可以搞定:

/**根据腾讯IP分享计划的地址获取IP所在地,比较精确 */

function getIPLoc_QQ($queryIP){
    $url = ‘http://ip.qq.com/cgi-bin/searchip?searchip1=‘.$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"); // 编码转换,否则乱码
    curl_close($ch);
    preg_match("@<span>(.*)</span></p>@iU",$result,$ipArray);
    $loc = $ipArray[1];
    return $loc;
}

使用getIPLoc_QQ("183.37.209.57")即可得到IP地址所在的地址位置。

腾讯IP分享计划这个网站用的是gb2312编码,获取的响应需要用mb_convert_encoding函数进行编码转换,否则会有乱码。

时间: 2024-10-27 12:38:36

API之IP地址查询---权威的IP地址查询接口集合的相关文章

域名dns查询_查询域名dns ip地址

最近有部分用户反应管理的天气网站打开偏慢,决定从每一个可以出现的问题点查起!首先就是dns! 通过360dns监控对比发现,同一组域名,15tianqi.cn的dns响应时间比较长,在300-700间,而其它的哉名响应则20-300间,发现dsn有一定的问题,接下来分析dns 首先要知道域名dns服务器的IP,在这里和大家分享查询域名dns ip地址: 域名dns查询方法: 1.打开cmd.exe (运行 输入 cmd 回车就可以出来了) 2.输入 nslookup 回车 3.输入 set ty

为什么ipconfig和浏览器查询出的ip不一样?(再说路由协议)

为什么ipconfig和浏览器查询出的ip不一样? 这是zhihu上的一篇文章,讲的不错.摘: 亿万万用户需要上网,需要用身份证号来识别,但是全球IP被瓜分完毕,意味着没有足够的身份证号来识别通信终端,怎么办呢? 私有IP 于是互联网管理机构颁布一项新的规定,无法拥有全球IP的电脑.手机终端可以自由使用以下三个号段的IP地址: 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 同时又规定,以上三个号段的私有IP报文不能进入Internet. 是不是很滑稽?私有IP报

命题作文:在一棵IPv4地址树中彻底理解IP路由表的各种查找过程

这是一篇命题作文.近期一直想写点东西,但一直找不到题目.正好收到一封邮件,有人问我Linux路由表的布局问题以及路由缓存的问题,加之前些日子又帮人做了一个片上路由表,所以认为这是个好题目,索性花了多半个周末的时间,奋笔疾书. 前面的套话 不写命题作文已经11年了.最后一次是在高考的考场上. 收到邮件时,被人要求写这样的命题作文,其实我是拒绝的,由于你不能叫我写我就立即去写,首先我自己得懂这个.我又不能说到了写完了的时候贴了非常多baidu出来的图片,说了非常多套话,人家一看就知道我这是转载或者翻

快速查找和你聊天人的IP和具体的物理所在地址

附言 : 对于中秋佳节没有回家也没有外出的我,亦然选择闭关.本来是打算把这个公众号作为测试号的.但是发现这个号已经有注册有一年多了,怪可惜的!所以就用来发些教程图文,供给大家共同学习,也对自己进行不定期的总结吧,好了,下面我要开课了. 要查到别人的所在地,首先你必须得知道别人的IP.这里的IP只是IP地址,并不是TCP/IP协议里的网络层哦.具体的大家可以不用知道,这个说白了就像是标记一个网络节点的地址. 查到这个其实很简单,首先你只要打开电脑,同时按住win键加R键,就会弹出系统的运行框,你只

公网IP是不是真实的iP 如何判断公网IP是否是真实的IP地址

怎么查自己的公网IP是不是真实的.有以下几个步骤 一: 打开这个网址  http://www.ip138.com/   就有如图的ip地址.复制这个IP地址.然后继续第二步操作. 二:打开这个网址,这输入IP那栏粘贴你刚才复制的ip,然后点查询.以我的这个出差的地址为例: 如图看到有响应时间,说明,这个是有真实的公网IP...就可以免费用花生壳,或者金万维了.速度还可以. 如果如下图,那就要用内网版的花生壳或者金万维,或者其他内网的软件映射或者VPN等等.最实惠的是内网版花生壳了. 响应时间跟

Centos如何设置IP地址,LINUX怎么修改IP地址

Centos如何设置IP地址,LINUX怎么修改IP地址 1 2 3 4 5 6 7 分步阅读 百度经验:jingyan.baidu.com 对于很多刚刚接触linux的朋友来说,如何设置linux系统的IP地址,作为第一步,下面小编以centos系统为例,给大家演示如何给centos设置IP地址,如何修改linux 系统IP地址? 步骤阅读 百度经验:jingyan.baidu.com 工具/原料 linux系统,centos 百度经验:jingyan.baidu.com 查看IP地址 1 登

Linux_Centos如何设置IP地址,LINUX怎么修改IP地址

对于很多刚刚接触linux的朋友来说,如何设置linux系统的IP地址,作为第一步,下面小编以centos系统为例,给大家演示如何给centos设置IP地址,如何修改linux 系统IP地址? linux系统,centos 查看IP地址 登陆连接centos系统,输入 ifconfig 可以查看到当前本机的IP地址信息,如下图 临时设置IP地址 如本机为例,上面查询IP为1.117,输入 ifconfig eth0 (默认是第一个网卡) 后面接IP地址, 网络掩码和 网关,如果不设置,就使用默认

几种在Linux下查询外网IP的办法。

几种在Linux下查询外网IP的办法. Curl 纯文本格式输出: curl icanhazip.com curl ifconfig.me curl curlmyip.com curl ip.appspot.com curl ipinfo.io/ip curl ipecho.net/plain curl www.trackip.net/i curl JSON格式输出: curl ipinfo.io/json curl ifconfig.me/all.json curl www.trackip.n

DHCP自动分配地址;DHCP指定IP给客户端

实验项目:DHCP自动分配地址:DHCP 地址预留给指定客户机. 实验环境:VMware虚拟机中Linux系统(服务器)Windows 7系统(客户端)DHCP服务软件(安装在Linux) 实验目的:使服务器自动分配IP地址给客户端:指定一个IP地址给客户端(可以永久保留此地址). 实验经过:1.在Linux系统中执行命令:1>mount /dev/sr0 /mnt #挂载镜像文件到 /mnt目录下.2>df -h #查看挂载信息3>rpm -ivh /mnt/Packages/dhcp