实时大数据之使用 geoip2解析IP地址

博客介绍了如何在实时程序中使用GeoIP2离线库进行IP地址解析,强调了准确性的重要性。首先,需要将下载的GeoIP2数据库包放置在合适的目录,如生产环境的lib目录,并确保路径动态配置。接着,通过提供的代码示例展示了如何执行IP解析的主要步骤。
摘要由CSDN通过智能技术生成

首先在实时程序中 调用接口不现实,肯定是调用离线库去解决地址的,这种准确性很重要,现在推荐下面这个离线库:

注意点:

1)下载包  放到对应的目录,特别是在生产环境,一般放在lib目录下 动态写活

https://dev.maxmind.com/geoip/geoip2/geolite2/#Downloads

下载解压

2)写代码:

 

代码: 执行main方法 

package test_demo;
import com.maxmind.geoip2.DatabaseReader;
import com.maxmind.geoip2.exception.GeoIp2Exception;
import com.maxmind.geoip2.model.CityResponse;
import com.maxmind.geoip2.record.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;
import java.net.InetAddress;


public class IPUtils {
    private static Logger logger = LoggerFactory.getLogger(IPUtils.class);

    /**
     * 全局静态变量,DatabaseReader,保证类加载时加载一次
     */
    private static DatabaseReader reader;

    /**
     * 静态代码块,保证项目启动只获取一次文件
     */
    static {

        File database = null;

        try {
            //绝对路径读取文件方式
            database = new File("C:\\Users\\Administrator\\Desktop\\部署flume+storm文档\\Flume优化\\GeoLite2-City_20191126\\GeoLite2-City.mmdb");

            // 通过 InputStream 流式读取文件,目的解决无法通过File方式读取jar包内的文件的问题·1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值