From 916a56dac382e519737f2f5be34063d46964f589 Mon Sep 17 00:00:00 2001 From: lihai03 Date: Mon, 20 Jun 2022 11:12:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=B8=A6?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC=E7=9A=84=20Ipv4Util.ipv4ToLong=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/net/Ipv4Util.java | 11 +++++++++++ .../test/java/cn/hutool/core/net/Ipv4UtilTest.java | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java b/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java index 886f9c47f..15adb041c 100755 --- a/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/Ipv4Util.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.PatternPool; +import cn.hutool.core.lang.Validator; import cn.hutool.core.util.CharUtil; import cn.hutool.core.util.StrUtil; @@ -168,6 +169,16 @@ public class Ipv4Util { throw new IllegalArgumentException("Invalid IPv4 address!"); } + /** + * 根据ip地址(xxx.xxx.xxx.xxx)计算出long型的数据, 如果格式不正确返回 defaultValue + * @param strIP IP V4 地址 + * @param defaultValue 默认值 + * @return long值 + */ + public static long ipv4ToLong(String strIP, long defaultValue) { + return Validator.isIpv4(strIP) ? ipv4ToLong(strIP) : defaultValue; + } + /** * 根据 ip/掩码位 计算IP段的起始IP(字符串型) * 方法别名:inet_ntoa diff --git a/hutool-core/src/test/java/cn/hutool/core/net/Ipv4UtilTest.java b/hutool-core/src/test/java/cn/hutool/core/net/Ipv4UtilTest.java index 13d5ddbd1..3d590f9b0 100644 --- a/hutool-core/src/test/java/cn/hutool/core/net/Ipv4UtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/net/Ipv4UtilTest.java @@ -86,4 +86,17 @@ public class Ipv4UtilTest { l = Ipv4Util.ipv4ToLong("255.255.255.255"); Assert.assertEquals(4294967295L, l); } + + @Test + public void ipv4ToLongWithDefaultTest() { + String strIP = "不正确的 IP 地址"; + long defaultValue = 0L; + long ipOfLong = Ipv4Util.ipv4ToLong(strIP, defaultValue); + Assert.assertEquals(ipOfLong, defaultValue); + + String strIP2 = "255.255.255.255"; + long defaultValue2 = 0L; + long ipOfLong2 = Ipv4Util.ipv4ToLong(strIP2, defaultValue2); + Assert.assertEquals(ipOfLong2, 4294967295L); + } }