超级好用jip-common,同时支持IPv4&IPv6,性能简直逆天

jip-common是一个强大的IP解析库,支持IPv4和IPv6,提供IP解析、集合操作等功能。它采用线段树和红黑树实现,提供IP合并、交集、并集、差集等操作,简化了IP处理的复杂性,适用于IPv6逐渐普及的场景。
摘要由CSDN通过智能技术生成

超级好用jip-common,同时支持IPv4&IPv6,性能简直逆天


一· 概述

随着IPv6在慢慢应用普及,很多公司内部应用都需要逐渐支持IPv6。但由于之前大部分开发人员都只考虑了IPv4,导致升级支持IPv6时工作量较大,甚至会出现大量的if else的臃肿代码。

本ip解析模块jip-common,它对上层应用直接屏蔽IP类型以及IP段等底层概念,使得上层应用切换升级更加方便。

更多详情通过以下链接了解:

  1. gitee:https://gitee.com/toktok
  2. blog: http://www.easysb.cn

二· jip-common简介

jip-common不仅仅支持IPv4和IPv6,还支持多种IP格式的解析(参考下一节),可以对上层应用直接屏蔽IP的类型,甚至单个IP还是IP段,使得应用上层代码更加简洁。考虑到大部分业务都需要IP的集合操作,JIP库还提供了IP集合的操作,比如合并、交集、并集和差集功能,最大限度地满足业务的需求。

通常,我们为了实现查找某个IP是属于哪个产品时,很多开发人员的做法就直接将IP段散列成单个IP,然后通过Map的方式一一对应起来,从而实现快速查找。这对于ip数量不是很多的情况下,没有太多的问题。倘若IP数量较大,或者说了到IPv6这个层面,那么这种方法简直就是要被开除的节奏了。为此,JIP模块基于线段树和红黑树的特性,不再散列IP段,实现了一种快速搜索查找的功能,可以大大节省内存和搜索时间。

  • maven

首先添加如repo到配置文件中

<repositories>
  <repository>
      <id>jitpack.io</id>
      <url>https://jitpack.io</url>
  </repository>
</repositories>

再加入以下依赖:

  <dependency>
      <groupId>com.github.jekkay</groupId>
      <artifactId>jip-common</artifactId>
      <version>1.0.0</version>
  </dependency>
  • gradle等

请参考如下链接

https://jitpack.io/#jekkay/jip-common/

三·支持格式

对于# 开头的一行,JIP会默认为注释,跳过解析。

IP之间的分隔符可以是 "\r\n", " \r", "\n", ";"四种。

3.1 IP解析支持格式

  • IPV4支持的格式有四种,分别如下:

格式 举例说明 备注
单个IP格式 1.1.1.1
1.1.1.1 # 还可以支持注释哦
注释中不要带分号,会被认为多个ip的分割符号
ip段带掩码 1.1.1.1/24
1.1.1.1/24 # 还可以支持注释哦
注释中不要带分号,会被认为多个ip的分割符号
IP段简单起始样式 1.1.1.1-20
1.1.1.1-20 # 还可以支持注释哦
注释中不要
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值