springboot2 指定ip_springboot 学习之路 23 (ip2region的使用)

package com.huhy.demo.ip2region;

import org.lionsoul.ip2region.DataBlock;

import org.lionsoul.ip2region.DbConfig;

import org.lionsoul.ip2region.DbSearcher;

import org.lionsoul.ip2region.Util;

import java.io.File;

import java.lang.reflect.Method;/**

* @author : huhy on 2018/10/10.

* @Project_name:springboot_self_gitlab

* @LOCAL:com.huhy.demo.ip2region

* @description:获取外网ip位置的工具类*/

public classIPUtils {/**

* @author huhy

* @ClassName:IPUtils

* @date 2018/10/10 15:01

* @Description: 根据外网ip获取位置信息*/

public staticString getIPInfo(String ip){//加载ip2region.db

String dbPath = IPUtils.class.getResource("/ip2region/ip2region.db").getPath();

File file= newFile(dbPath);if ( file.exists() == false) {

System.out.println("Error: Invalid ip2region.db file");

}//查询算法

int algorithm = DbSearcher.BTREE_ALGORITHM; //B-tree//DbSearcher.BINARY_ALGORITHM//Binary//DbSearcher.MEMORY_ALGORITYM//Memory

try{

DbConfig config= newDbConfig();

DbSearcher searcher= newDbSearcher(config, dbPath);//define the method

Method method = null;switch( algorithm )

{caseDbSearcher.BTREE_ALGORITHM:

method= searcher.getClass().getMethod("btreeSearch", String.class);break;caseDbSearcher.BINARY_ALGORITHM:

method= searcher.getClass().getMethod("binarySearch", String.class);break;caseDbSearcher.MEMORY_ALGORITYM:

method= searcher.getClass().getMethod("memorySearch", String.class);break;

}

DataBlock dataBlock= null;if (Util.isIpAddress(ip) == false) {

System.out.println("Error: Invalid ip address");

}

dataBlock=(DataBlock) method.invoke(searcher, ip);returndataBlock.getRegion();

}catch(Exception e) {

e.printStackTrace();

}return null;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值