Java 获取 IP 地址的地域信息 - GeoIP 库使用教程

Java 可以使用第三方库来根据 IP 地址获取地域信息,例如使用 GeoIP 库。

使用 GeoIP 库获取 IP 地址的地域信息

以下是一个示例代码,使用 GeoIP 库获取 IP 地址的地域信息:

import com.maxmind.geoip2.DatabaseReader;
import com.maxmind.geoip2.exception.GeoIp2Exception;
import com.maxmind.geoip2.model.CityResponse;

import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.util.Scanner;

public class GeoIPExample {
    public static void main(String[] args) {
        try {
            // 创建 GeoIP 库的 DatabaseReader 对象
            File database = new File('GeoLite2-City.mmdb');
            DatabaseReader reader = new DatabaseReader.Builder(database).build();

            // 读取用户输入的 IP 地址
            Scanner scanner = new Scanner(System.in);
            System.out.print('请输入 IP 地址: ');
            String ipAddress = scanner.nextLine();

            // 根据 IP 地址查询地域信息
            InetAddress ip = InetAddress.getByName(ipAddress);
            CityResponse response = reader.city(ip);

            // 输出地域信息
            System.out.println('国家: ' + response.getCountry().getName());
            System.out.println('省份: ' + response.getMostSpecificSubdivision().getName());
            System.out.println('城市: ' + response.getCity().getName());
        } catch (IOException | GeoIp2Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,需要使用 GeoIP 库的 jar 包,并将 GeoLite2-City.mmdb 文件放在相同的目录下。用户需要输入要查询的 IP 地址,然后根据 IP 地址查询相应的地域信息,包括国家、省份和城市。

总结

本文介绍了如何使用 GeoIP 库在 Java 中根据 IP 地址获取地域信息,并提供了示例代码和详细步骤。希望本文能帮助您快速上手,并实现 IP 地址地域信息查询的功能。


原文地址: https://www.cveoy.top/t/topic/pRa3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录