在实际需求中,常常需要查询IP对应的读取地区信息。目前,网络上的IP数据库以纯真版的最为流行,可以从网上下载到。
关于纯真IP数据库的格式可以参考这篇文章:《纯真IP数据库格式详解》 在JSP或者Servlet中源码如下:

  1. String ipstr = request.getHeader("x-forwarded-for");
  2. if(ipstr ==null|| ipstr.length() ==0||"unknown".equalsIgnoreCase(ipstr)) {
  3.     ipstr = request.getHeader("Proxy-Client-IP");
  4. }
  5. if(ipstr ==null|| ipstr.length() ==0||"unknown".equalsIgnoreCase(ipstr)) {
  6.     ipstr = request.getHeader("WL-Proxy-Client-IP");
  7. }
  8. if(ipstr ==null|| ipstr.length() ==0||"unknown".equalsIgnoreCase(ipstr)) {
  9.     ipstr = request.getRemoteAddr();
  10. }
  11. IPSeeker ip=newIPSeeker("QQWry.Dat","e:/ip");
  12. IPLocation local = ip.getIPLocation(ipstr);
  13. //获得地区
  14. String address = local.getCountry();
  15. //获得类型
  16. String type = local.getArea();

IPSeeker 的构造函数的第一个参数是纯真IP数据库文件的名字,第二个参数是该文件所在的文件夹名(全路径).

  1. IPSeeker ip=new IPSeeker("QQWry.Dat","e:/ip");

源码下载: http://pan.baidu.com/s/1jG3jLw6

纯真IP库下载:http://www.cz88.net/