通过IP地址获取对应的地区信息通常有两种方法:
1)自己写程序,解析IP对应的地区信息,需要数据库。
2)根据第三方提供的API查询获取地区信息。
第一种方法,参见文本《通过纯真IP数据库获取IP地址对应的地区信息》,这种方法的维护代价较高,而且对自己的服务器有一定的压力。
随着技术的开放,第三方已经逐渐免费开放相应的API。经过测试,目前网易和新浪提供的较为稳定易用。
通过IP地址获取对应的地区信息通常有两种方法:
1)自己写程序,解析IP对应的地区信息,需要数据库。
2)根据第三方提供的API查询获取地区信息。
第一种方法,参见文本《通过纯真IP数据库获取IP地址对应的地区信息》,这种方法的维护代价较高,而且对自己的服务器有一定的压力。
随着技术的开放,第三方已经逐渐免费开放相应的API。经过测试,目前网易和新浪提供的较为稳定易用。
在实际需求中,常常需要查询IP对应的读取地区信息。目前,网络上的IP数据库以纯真版的最为流行,可以从网上下载到。
关于纯真IP数据库的格式可以参考这篇文章:《纯真IP数据库格式详解》在JSP或者Servlet中源码如下:
String ipstr = request.getHeader("x-forwarded-for");
if(ipstr ==null|| ipstr.length() ==0||"unknown".equalsIgnoreCase(ipstr)) {
ipstr = request.getHeader("Proxy-Client-IP");
}
if(ipstr ==null|| ipstr.length() ==0||"unknown".equalsIgnoreCase(ipstr)) {
ipstr = request.getHeader("WL-Proxy-Client-IP");
}
if(ipstr ==null|| ipstr.length() ==0||"unknown".equalsIgnoreCase(ipstr)) {
ipstr = request.getRemoteAddr();
}
IPSeeker ip=newIPSeeker("QQWry.Dat","e:/ip");
IPLocation local = ip.getIPLocation(ipstr);
//获得地区
String address = local.getCountry();
//获得类型
String type = local.getArea();
XXXX以前,我们村民没什么事情,晚上也没有灯,唯一的娱乐也就是晚上没事BT。后来XXXX了,一部分人先富起来了,总是BT感觉没意思了,成天就在琢磨着搞些新玩意,但是长期没有结果。突然有一天,村里以前到外面打工的XX张紫衣回来了。这紫衣姑娘可不得了,长得漂亮水灵,听说还在城里拍高清AV,这 AV我们村民不知道什么意思,但是听说很来劲。紫衣漂亮水灵,长得该大的大,该小的小,搞得老爷们心里痒痒的,总想和她BT。一天村长到紫衣家里想和她搞一下BT,结果被紫衣姑娘嘲笑了一通:“都什么时候了,你们还BT,我们城里早就PT了。” 紫衣姑娘解释道,这PT就是屁捅,贼刺激,贼舒服,但是不是很安全,容易得病,需要封闭起来,让没有病的人,体检合格的人才可以参加进来。村长听的将信将疑,也不懂这事情怎么搞,就让紫衣姑娘拿主意。