微博頭條等展示使用者ip屬地,我用java輕鬆搞定

語言: CN / TW / HK

一、前言

近日多家平臺已經上線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-ip2regionip2region 的封裝,方便 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 元件集,主要包括:

  1. Spring boot stater 利器 mica-auto。

  2. Spring boot 基礎元件集 mica,包括工具類、驗證碼、http、redis、ip2region、xss 等,開箱即用。

  3. 物聯網 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