JAVA处理IP地址显示方法

文章封面
摘要: ​ 近日,网络上最火的东西,莫过于各大平台上线了IP地址显示功能。有头条,百度,微博,小红书,知乎,微信公众号和抖音等众多网红软件。 这个功能上线的目的,还是为了预防互联网诈骗,比如跟你聊天或者与你

​ 近日,网络上最火的东西,莫过于各大平台上线了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-ip2regionip2region 的封装,方便 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 效果展示

相关链接?

882 阅读 ← 返回技术栈
图片放大