近日,网络上最火的东西,莫过于各大平台上线了IP地址显示功能。有头条,百度,微博,小红书,知乎,微信公众号和抖音等众多网红软件。


这个功能上线的目的,还是为了预防互联网诈骗,比如跟你聊天或者与你交易的人,IP地址显示不正常的,你肯定要警惕,或者是一些互联网造谣群体,网络攻击行为,冒充当事人等等,归根结底还是为了营造一个绿色的网络环境,让互联网变得更加安全与和谐。今天我们介绍的是如何使用 java 来获取 ip 地址归属地。
Ip2region
Ip2region是什么?
ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法。
mica-ip2region
mica-ip2region是ip2region的封装,方便spring boot用户使用。
1. 添加依赖
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
<version>${version}</version>
</dependency> 2. 使用说明
2.1 注入Bean
@Autowired private Ip2regionSearcher regionSearcher;
2.2 方法说明
/** * ip 位置 搜索 * * @param ip ip * @return 位置 */ @Nullable IpInfo memorySearch(long ip); /** * ip 位置 搜索 * * @param ip ip * @return 位置 */ @Nullable IpInfo memorySearch(String ip); /** * ip 位置 搜索 * * @param ptr ptr * @return 位置 */ @Nullable IpInfo getByIndexPtr(long ptr); /** * ip 位置 搜索 * * @param ip ip * @return 位置 */ @Nullable IpInfo btreeSearch(long ip); /** * ip 位置 搜索 * * @param ip ip * @return 位置 */ @Nullable IpInfo btreeSearch(String ip); /** * ip 位置 搜索 * * @param ip ip * @return 位置 */ @Nullable IpInfo binarySearch(long ip); /** * ip 位置 搜索 * * @param ip ip * @return 位置 */ @Nullable IpInfo binarySearch(String ip);
2.3 IpInfo 上的属性和方法:
/** * 城市id */ private Integer cityId; /** * 国家 */ private String country; /** * 区域 */ private String region; /** * 省 */ private String province; /** * 城市 */ private String city; /** * 运营商 */ private String isp; /** * region ptr in the db file */ private int dataPtr; /** * 拼接完整的地址 * * @return address */ public String getAddress(); /** * 拼接完整的地址,附带运营商 * * @return address */ public String getAddressAndIsp();
2.4 效果展示

相关链接?
- ip2region:https://gitee.com/lionsoul/ip2region
- mica:https://gitee.com/596392912/mica
- mica-mqtt:https://gitee.com/596392912/mica-mqtt