From 2c5d883a693747eafccd6bbebefe2d0202c36718 Mon Sep 17 00:00:00 2001 From: Jmper Date: Tue, 21 Nov 2023 17:48:37 +0800 Subject: [PATCH] [Bug]: utils.IsIPv4 and net.ParseIP have inconsistent results #2735 (#2736) --- utils/ips.go | 2 +- utils/ips_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/ips.go b/utils/ips.go index 4886c117..54ab11b9 100644 --- a/utils/ips.go +++ b/utils/ips.go @@ -23,7 +23,7 @@ func IsIPv4(s string) bool { for ci = 0; ci < len(s) && '0' <= s[ci] && s[ci] <= '9'; ci++ { n = n*10 + int(s[ci]-'0') - if n >= 0xFF { + if n > 0xFF { return false } } diff --git a/utils/ips_test.go b/utils/ips_test.go index 862319f3..7a8a5e17 100644 --- a/utils/ips_test.go +++ b/utils/ips_test.go @@ -14,6 +14,7 @@ func Test_IsIPv4(t *testing.T) { AssertEqual(t, true, IsIPv4("174.23.33.100")) AssertEqual(t, true, IsIPv4("127.0.0.1")) + AssertEqual(t, true, IsIPv4("127.255.255.255")) AssertEqual(t, true, IsIPv4("0.0.0.0")) AssertEqual(t, false, IsIPv4(".0.0.0"))