From 3d6812028cd97681f8c651a84587c37024f38a50 Mon Sep 17 00:00:00 2001 From: harisabdullah Date: Thu, 7 Sep 2023 15:05:11 +0500 Subject: [PATCH] Fixes #171 --- lib/cmd_tool_lower.go | 39 +++++++++++++++++++++++---------------- lib/cmd_tool_upper.go | 42 +++++++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 33 deletions(-) diff --git a/lib/cmd_tool_lower.go b/lib/cmd_tool_lower.go index 5469cb4a..3d4dba1d 100644 --- a/lib/cmd_tool_lower.go +++ b/lib/cmd_tool_lower.go @@ -36,17 +36,18 @@ func CmdToolLower( } actionFunc := func(input string, inputType INPUT_TYPE) error { + var err error switch inputType { case INPUT_TYPE_IP: - ActionForIP(input) + fmt.Println(input) case INPUT_TYPE_IP_RANGE: - ActionForRange(input) + err = ActionForRange(input) case INPUT_TYPE_CIDR: - ActionForCIDR(input) + err = ActionForCIDR(input) default: - return ErrNotIP + return ErrInvalidInput } - return nil + return err } err := GetInputFrom(args, true, true, actionFunc) if err != nil { @@ -56,24 +57,30 @@ func CmdToolLower( return nil } -func ActionForIP(input string) { - fmt.Println(input) -} - -func ActionForRange(input string) { +func ActionForRange(input string) error { ipRange, err := IPRangeStrFromStr(input) if err != nil { - fmt.Println(err) - return + return err } fmt.Println(ipRange.Start) + return nil } -func ActionForCIDR(input string) { +func ActionForCIDR(input string) error { _, ipnet, err := net.ParseCIDR(input) if err != nil { - fmt.Println(err) - return + return err + } + + var lower string + if ipnet.IP.To4() != nil { + ipRange, _ := IPRangeStrFromCIDR(input) + lower = ipRange.Start + } else if ipnet.IP.To16() != nil { + ipRange, _ := IP6RangeStrFromCIDR(input) + lower = ipRange.Start } - fmt.Println(ipnet.IP) + + fmt.Println(lower) + return nil } diff --git a/lib/cmd_tool_upper.go b/lib/cmd_tool_upper.go index bd393088..168c0594 100644 --- a/lib/cmd_tool_upper.go +++ b/lib/cmd_tool_upper.go @@ -2,6 +2,7 @@ package lib import ( "fmt" + "net" "github.com/spf13/pflag" ) @@ -35,17 +36,18 @@ func CmdToolUpper( } actionFunc := func(input string, inputType INPUT_TYPE) error { + var err error switch inputType { case INPUT_TYPE_IP: - ActionForIPUpper(input) + fmt.Println(input) case INPUT_TYPE_IP_RANGE: - ActionForRangeUpper(input) + err = ActionForRangeUpper(input) case INPUT_TYPE_CIDR: - ActionForCIDRUpper(input) + err = ActionForCIDRUpper(input) default: - return ErrNotIP + return ErrInvalidInput } - return nil + return err } err := GetInputFrom(args, true, true, actionFunc) if err != nil { @@ -55,24 +57,30 @@ func CmdToolUpper( return nil } -func ActionForIPUpper(input string) { - fmt.Println(input) -} - -func ActionForRangeUpper(input string) { +func ActionForRangeUpper(input string) error { ipRange, err := IPRangeStrFromStr(input) if err != nil { - fmt.Println(err) - return + return err } fmt.Println(ipRange.End) + return nil } -func ActionForCIDRUpper(input string) { - ipRange, err := IPRangeStrFromCIDR(input) +func ActionForCIDRUpper(input string) error { + _, ipnet, err := net.ParseCIDR(input) if err != nil { - fmt.Println(err) - return + return err } - fmt.Println(ipRange.End) + + var upper string + if ipnet.IP.To4() != nil { + ipRange, _ := IPRangeStrFromCIDR(input) + upper = ipRange.End + } else if ipnet.IP.To16() != nil { + ipRange, _ := IP6RangeStrFromCIDR(input) + upper = ipRange.End + } + + fmt.Println(upper) + return nil }