微博头条等展示用户ip属地,我用java轻松搞定
一、前言
近日多家平台已经上线IP地址显示功能,有头条,百度,微博,小红书,知乎,据称微信公众号也会上线。
这个功能上线的目的,还是为了预防互联网诈骗,比如跟你聊天或者与你交易的人,IP地址显示不正常的,你肯定要警惕,或者是一些互联网造谣群体,网络攻击行为,冒充当事人等等,归根结底还是为了营造一个绿色的网络环境,让互联网变得更加安全与和谐。今天我们介绍的是如何使用 java 来获取 ip 地址归属地。
二、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
用户使用。
3.1 添加依赖
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
<version>${version}</version>
</dependency>
3.2 使用文档
注入 bean
@Autowired
private Ip2regionSearcher regionSearcher;
方法说明
/**
* 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);
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();
效果展示:

四、关于 mica
mica 是笔者(如梦技术)开源的一系列 java 组件集,主要包括:
-
Spring boot stater 利器 mica-auto。
-
Spring boot 基础组件集 mica,包括工具类、验证码、http、redis、ip2region、xss 等,开箱即用。
-
物联网 mqtt 协议 mica-mqtt,包括 mqtt client 和 mqtt broker。
欢迎使用!!!
六、相关链接
-
ip2region: https://gitee.com/lionsoul/ip2region
-
mica: https://gitee.com/596392912/mica
-
mica-auto: https://gitee.com/596392912/mica-auto
-
mica-mqtt: https://gitee.com/596392912/mica-mqtt
- 重磅!腾讯正式开源SpringCloud解决方案
- 久等|全面拥抱Spring全新OAuth解决方案
- 安全 || 为了安全我升级到了 fastjson2
- 重头学 || SpringBoot 2.7 自定义 Starter 方法又变了
- 参与开源还能拿奖金,mica社区项目已定
- 微博头条等展示用户ip属地,我用java轻松搞定
- Spring Framework RCE 早期公告
- Spring Cloud Gateway 高危漏洞加固建议
- Java 11 到 Java 17 的最佳 HotSpot JVM 选项和开关
- 保姆级升级 java17 指南,建议收藏
- Java17 隐藏宝藏,从 Stream.mapMulti 到 HexFormat
- Spring 2021 报告
- JAVA 应用提速之 Large pages【译】
- OpenJDK 17 中的 Shenandoah:亚毫秒级 GC 停顿【译】
- idea 2021 很卡?一招教你起飞
- NewSQL || 微服务架构的必备选择
- Grafana 8.1 新特性之 Geomap 面板
- 一文精通 http 状态码
- 使用 MQTT 和 Grafana Live 实时将传感器数据流传输到 Grafana
- 【译】关系型数据库的工作原理