IP地址解析对应省市地区

Posted by Jackson on 2017-10-13

IP 地址解析

采用ip2region 来解析IP地址

1.下载离线的IP库

下载地址:https://github.com/lionsoul2014/ip2region/tree/master/data

下载ip2region.db

2.导入Maven依赖

org.lionsoul ip2region 1.7.2

3.编写解析IP工具类

默认的格式解析出来的是以’|’ 分割的,这里进行处理改成使用tab键进行分割
public class IpUtils {

/**
 * 解析Ip地址工具类,传入IP地址,返回省、市、城市、运行商,以\t分割
 */
public static String parseIP(String ip) {
    String result = "";
	// 关联下载的id2region.db 离线库
    String dbFile = "E:\\stud\\IpParse\\ip2region\\data\\ip2region.db";
    try {
        DbSearcher search = new DbSearcher(new DbConfig(), dbFile);
		// 传入ip进行解析
        DataBlock dataBlock = search.btreeSearch(ip);
		// 获取解析后的数据  格式:国家|大区|省|市|运营商
        String region = dataBlock.getRegion();
        String replace = region.replace("|", ",");
        String[] splits = replace.split(",");
        if (splits.length == 5) {
            String country = splits[0];
            String province = splits[2];
            String city = splits[3];
            String operator = splits[4];
			// 拼接数据
            result = country + "\t" + province + "\t" + city + "\t" + operator;
        }
        return result;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

}

4.工具类的调用

返回值detail即为我们解析后以\t拼接的信息

String detail = IpUtils.parseIP(ip);