# ip-info **Repository Path**: thinkcodee/ip-info ## Basic Information - **Project Name**: ip-info - **Description**: IP地址库Java版本。IP地理位置获取,支持获取IPv4、IPv6地址信息。包括:国家中文名称、中国省份中文名称、详细地址、互联网服务提供商、是否是国外、纬度、经度。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 35 - **Created**: 2022-09-02 - **Last Updated**: 2024-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ip-info ## 概述 IP地理位置获取。支持获取IPv4、IPv6地址信息。包括:国家中文名称、中国省份中文名称、详细地址、互联网服务提供商、是否是国外、纬度、经度。 ## 源码安装 JDK版本最低需要8 ```shell git clone https://gitee.com/jthinking/ip-info.git cd ip-info mvn install -DskipTests ``` ## 快速入门 Maven依赖 ```xml com.jthinking.common ip-info 2.1.7 ``` 示例代码 ```java // 获取IP信息 IPInfo ipInfo = IPInfoUtils.getIpInfo("222.128.176.102"); System.out.println(ipInfo.getCountry()); // 国家中文名称 System.out.println(ipInfo.getProvince()); // 中国省份中文名称 System.out.println(ipInfo.getAddress()); // 详细地址 System.out.println(ipInfo.getIsp()); // 互联网服务提供商 System.out.println(ipInfo.isOverseas()); // 是否是国外 System.out.println(ipInfo.getLat()); // 纬度 System.out.println(ipInfo.getLng()); // 经度 for (int i = 0; i < 100; i++) { System.out.println(IPInfoUtils.getIpInfo("54.213.132." + i)); } ``` init方法使用 ``` // 初始化过程需要耗费较长时间,大概为几秒钟,可调用init方法提前初始化,使得查询方法可快速返回结果。 // 如不调用该方法,当第一次调用getIpInfo方法时会自动调用init方法。即使不显式调用init方法,也只会在第一次获取IP信息时自动调用一次。 IPInfoUtils.init(); IPInfo ipInfo = IPInfoUtils.getIpInfo("222.128.176.102"); ``` 自定义IP信息使用 ``` // 调用useCustom方法,将参数设置为true表示开启自定义IP功能,默认为false。 IPInfoUtils.useCustom(true); // 调用addCustom方法,创建CustomIPInfo对象,加入自定义IP地址信息 IPInfoUtils.addCustom(new CustomIPInfo("127.0.0.1", "中国", "北京市", "北京市海淀区", "移动", false, 0, 0)); // 调用listCustom方法可获取所有自定义的IP信息 Collection customIPInfos = IPInfoUtils.listCustom(); // 开启IP自定义功能并且添加自定义IP信息后,再次调用getIpInfo获取IP信息时优先获取自定义IP信息,当没有自定义IP信息时,使用系统内置IP信息。 IPInfo ipInfo = IPInfoUtils.getIpInfo("127.0.0.1"); ``` ## 调用示例 ```java IPInfo ipInfo1 = IPInfoUtils.getIpInfo("222.128.176.102"); IPInfo ipInfo2 = IPInfoUtils.getIpInfo("192.168.1.1"); IPInfo ipInfo3 = IPInfoUtils.getIpInfo("240E:0378:65FF:FFFF::"); IPInfo ipInfo4 = IPInfoUtils.getIpInfo("::1"); IPInfo ipInfo5 = IPInfoUtils.getIpInfo("2409:807e:2001:1107:0:0:0:4"); IPInfo ipInfo6 = IPInfoUtils.getIpInfo("2606:4700:50:0:0:0:adf5:3a5c"); IPInfo ipInfo7 = IPInfoUtils.getIpInfo("2400:3200:2000:49:0:0:0:1"); IPInfo ipInfo8 = IPInfoUtils.getIpInfo("2600:9000:5307:4100:0:0:0:1"); IPInfo ipInfo9 = IPInfoUtils.getIpInfo("2400:cb00:2049:1:0:0:adf5:3a05"); IPInfo ipInfo10 = IPInfoUtils.getIpInfo("2803:f800:50:0:0:0:6ca2:c04b"); ``` ## IP库来源 - IPv4地址原始信息来自 [cz88.net](http://www.cz88.net/ip/) - IPv6地址原始信息来自 [zxinc.org](http://ip.zxinc.org/)