通过IP地址获取对应的地区信息通常有两种方法:
1)自己写程序,解析IP对应的地区信息,需要数据库。
2)根据第三方提供的API查询获取地区信息。

第一种方法,参见文本《通过纯真IP数据库获取IP地址对应的地区信息》,这种方法的维护代价较高,而且对自己的服务器有一定的压力。

随着技术的开放,第三方已经逐渐免费开放相应的API。经过测试,目前网易和新浪提供的较为稳定易用。

1)新浪IP地址查询API接口

新浪的IP地址查询接口:

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=IP地址

测试用例:

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=114.114.114.114

返回以下信息:

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地址:

http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IP地址

举例:

http://www.youdao.com/smartresult-xml/search.s?type=ip&q=114.114.114.114

返回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>

最新文章

  1. knockout+echarts实现图表展示
  2. Objc Block
  3. cocos2d-x中使用可加密Sqlite存储玩家数据
  4. cocos2d-x 3.2读取xml和json练习
  5. 关于开源框架GPUImage 的简单说明
  6. 什么是mimeType?
  7. bzoj 4835: 遗忘之树 [树形DP]
  8. 伯努利数学习笔记&amp;&amp;Luogu P3711 仓鼠的数学题
  9. Learning WCF:Life Cycle of Service instance
  10. js 中判断变量是数组还是对象,和判断对象是否为空
  11. Java的IO文档
  12. FFT(快速傅里叶变换)摘要
  13. sprintboot 发布
  14. 神龟快跑,2016做的一款UWP游戏
  15. 【转】Dubbo声明式缓存
  16. dp之分组背包hdu3535(推荐)
  17. django常见问题小结,细节容易忽视
  18. Linux简单编程学习心得
  19. java csv list cant not repeat
  20. C++ typedef的一个用法

热门文章

  1. 函数fsp_fill_free_list
  2. HDU 3032 (Nim博弈变形) Nim or not Nim?
  3. sql DROP 和DELETE、TRUNCATE用法
  4. Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流的解决方法
  5. 抛出自定义异常,spring AOP事务不回滚的解决方案
  6. acdream 1683 村民的怪癖(KMP,经典变形)
  7. 用 Xcode 开发 Cydia Substrate 插件(二)
  8. javascript对象定义和操作
  9. yaf框架流程三
  10. Servlet容器的启动(Tomcat为例)