From 3d3f3e96343192304d3f8ec3a1bb8e63ed6ae164 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 9 May 2024 15:39:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BD=AC=E6=8D=A2IP=E4=BD=8D=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E5=9C=B0=E5=9D=80=E6=8E=A9=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/utils/parse/parse.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/framework/utils/parse/parse.go b/src/framework/utils/parse/parse.go index 82f9ccba..76f535dc 100644 --- a/src/framework/utils/parse/parse.go +++ b/src/framework/utils/parse/parse.go @@ -170,6 +170,27 @@ func Color(colorStr string) *color.RGBA { } } +// ConvertIPMask 转换IP网络地址掩码 24 -> 255.255.255.0 +func ConvertIPMask(bits int64) string { + if bits < 0 || bits > 32 { + return "Invalid Mask Bits" + } + + // 构建一个32位的uint32类型掩码,指定前bits位为1,其余为0 + mask := uint32((1<>24), + fmt.Sprintf("%d", (mask>>16)&255), + fmt.Sprintf("%d", (mask>>8)&255), + fmt.Sprintf("%d", mask&255), + } + + // 将分组用点号连接起来形成掩码字符串 + return strings.Join(groups, ".") +} + // ConvertConfigToMap 将配置内容转换为Map结构数据 // // configType 类型支持:txt json yaml yml