From 3b3871ba1e5a6e68a7c6975a1683caebdf2fd939 Mon Sep 17 00:00:00 2001 From: Zjp <1215582715@qq.com> Date: Wed, 15 Feb 2023 21:12:21 +0800 Subject: [PATCH] fix bug; --- .../src/main/java/cn/hutool/core/net/MaskBit.java | 3 ++- .../src/test/java/cn/hutool/core/net/Ipv4UtilTest.java | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/net/MaskBit.java b/hutool-core/src/main/java/cn/hutool/core/net/MaskBit.java index 5b51c0c10..934a93180 100644 --- a/hutool-core/src/main/java/cn/hutool/core/net/MaskBit.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/MaskBit.java @@ -2,6 +2,7 @@ package cn.hutool.core.net; import cn.hutool.core.lang.Assert; import cn.hutool.core.map.BiMap; + import java.util.HashMap; /** @@ -83,6 +84,6 @@ public class MaskBit { */ public static long getMaskIpLong(final int maskBit) { Assert.isTrue(MASK_BIT_MAP.containsKey(maskBit), "非法的掩码位数:{}", maskBit); - return -1L << (32 - maskBit); + return (0xffffffffL << (32 - maskBit)) & 0xffffffffL; } } 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 97497d5b4..9ccf674f8 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 @@ -121,7 +121,7 @@ public class Ipv4UtilTest { } @Test - public void ipv4ToLongTest(){ + public void ipv4ToLongTest() { long l = Ipv4Util.ipv4ToLong("127.0.0.1"); Assert.assertEquals(2130706433L, l); l = Ipv4Util.ipv4ToLong("114.114.114.114"); @@ -132,6 +132,13 @@ public class Ipv4UtilTest { Assert.assertEquals(4294967295L, l); } + @Test + public void getMaskIpLongTest() { + for (int i = 1; i <= 32; i++) { + Assert.assertEquals(Ipv4Util.ipv4ToLong(MaskBit.get(i)), MaskBit.getMaskIpLong(i)); + } + } + @SuppressWarnings("SameParameterValue") private void testGenerateIpList(final String fromIp, final String toIp) { Assert.assertEquals(