网易及新浪IP查询接口
通过IP地址获取对应的地区信息通常有两种方法:
1)自己写程序,解析IP对应的地区信息,需要数据库。
2)根据第三方提供的API查询获取地区信息。
第一种方法,参见文本《通过纯真IP数据库获取IP地址对应的地区信息》,这种方法的维护代价较高,而且对自己的服务器有一定的压力。
随着技术的开放,第三方已经逐渐免费开放相应的API。经过测试,目前网易和新浪提供的较为稳定易用。
1)新浪IP地址查询API接口
新浪的IP地址查询接口:
测试用例:
返回以下信息:
var remote_ip_info = {"ret":1,"start":"114.114.112.0","end":"114.114.119.255","country":"\u4e2d\u56fd","province":"\u6c5f\u82cf","city":"\u5357\u4eac","district":"","isp":"\u7535\u4fe1","type":"","desc":"\u5357\u4eac\u4fe1\u98ce114dns\u4e13\u5c5e"};
文字经过utf-8编码,分别对应不同的信息。
可以通过javascript跨域直接调用,如(使用jquery):
$.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip='+ip, function(_result){
if (remote_ip_info.ret == '1'){
alert('IP 详细信息:', 'IP:'+ip+'<BR>国
家:'+remote_ip_info.country+'<BR>省
份:'+remote_ip_info.province+'<BR>城
市:'+remote_ip_info.city+'<BR>
区:'+remote_ip_info.district+'<BR>ISP:'+remote_ip_info.isp+'<BR>
类型:'+remote_ip_info.type+'<BR>其他:'+remote_ip_info.desc);
} else {
alert('错误', '没有找到匹配的 IP 地址信息!');
}
2)网易有道IP地址API接口
查询IP地址:
举例:
返回xml文本信息:
<?xml version="1.0" encoding="gbk"?>
<smartresult>
<product type="ip">
<ip>114.114.114.114</ip>
<location>江苏省南京市 信风网络科技有限公司公众DNS服务器</location>
</product>
</smartresult>
================
一般情况下可以用到判断ip跳转,比如不同区域侦测到ip后进行跳转到不同页面或者ip日志记录。如下:我是通过ip判断跳转到不同页面,可以让不同ip看到不同东西。
html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title> <script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js" charset="utf-8" ></script>
<script type="text/javascript" charset="GB2312">
<!--document.write(remote_ip_info.province);document.write(remote_ip_info.isp); 显示区域,已屏蔽,实现无痕跳转-->
var pro=remote_ip_info.province; if(pro='河南'){
window.location.href="index.php";
}else {
window.location.href="http://www.victdo.com/index/index.html";
}
</script> </head> <body>
</body>
</html>
最新文章
- knockout+echarts实现图表展示
- Objc Block
- cocos2d-x中使用可加密Sqlite存储玩家数据
- cocos2d-x 3.2读取xml和json练习
- 关于开源框架GPUImage 的简单说明
- 什么是mimeType?
- bzoj 4835: 遗忘之树 [树形DP]
- 伯努利数学习笔记&;&;Luogu P3711 仓鼠的数学题
- Learning WCF:Life Cycle of Service instance
- js 中判断变量是数组还是对象,和判断对象是否为空
- Java的IO文档
- FFT(快速傅里叶变换)摘要
- sprintboot 发布
- 神龟快跑,2016做的一款UWP游戏
- 【转】Dubbo声明式缓存
- dp之分组背包hdu3535(推荐)
- django常见问题小结,细节容易忽视
- Linux简单编程学习心得
- java csv list cant not repeat
- C++ typedef的一个用法
热门文章
- 函数fsp_fill_free_list
- HDU 3032 (Nim博弈变形) Nim or not Nim?
- sql DROP 和DELETE、TRUNCATE用法
- Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流的解决方法
- 抛出自定义异常,spring AOP事务不回滚的解决方案
- acdream 1683 村民的怪癖(KMP,经典变形)
- 用 Xcode 开发 Cydia Substrate 插件(二)
- javascript对象定义和操作
- yaf框架流程三
- Servlet容器的启动(Tomcat为例)