Skip to content

Commit 7054132

Browse files
authored
Merge pull request #3 from alexandregv/feat/print-ranges
Add -r flag to print IP ranges
2 parents d8a1e5c + 1548868 commit 7054132

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

cidr2ip.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ const (
1818
var (
1919
cidrFilePtr = flag.String("f", "",
2020
"[Optional] Name of file with CIDR blocks")
21+
printRangesPtrPtr = flag.Bool("r", false,
22+
"[Optional] Print IP ranges instead of all IPs")
2123
)
2224

2325
func main() {
@@ -50,8 +52,15 @@ func main() {
5052
displayIPs(scanner.Text())
5153
}
5254
} else if len(args) > 0 { // look for CIDRs on cmd line
53-
for _, ip := range args {
54-
displayIPs(ip)
55+
var cidrs []string
56+
if *printRangesPtrPtr == true {
57+
cidrs = args[1:]
58+
} else {
59+
cidrs = args
60+
}
61+
62+
for _, cidr := range cidrs {
63+
displayIPs(cidr)
5564
}
5665
} else { // no piped input, no file provide and no args, display usage
5766
flag.Usage()
@@ -87,8 +96,12 @@ func displayIPs(cidr string) {
8796
return
8897
}
8998

90-
for _, ip := range ips[1 : len(ips)-1] {
91-
fmt.Println(ip)
99+
if *printRangesPtrPtr == true {
100+
fmt.Printf("%s-%s\n", ips[1], ips[len(ips)-2])
101+
} else {
102+
for _, ip := range ips[1 : len(ips)-1] {
103+
fmt.Println(ip)
104+
}
92105
}
93106
}
94107

@@ -105,9 +118,11 @@ func increment(ip net.IP) {
105118

106119
func usage() {
107120
fmt.Fprintf(os.Stderr, "CIDR to IPs version %s\n", Version)
108-
fmt.Fprintf(os.Stderr, "Usage: $ cidr2ip [-f <filename>] <list of cidrs> \n")
121+
fmt.Fprintf(os.Stderr, "Usage: $ cidr2ip [-r] [-f <filename>] <list of cidrs> \n")
109122
fmt.Fprintf(os.Stderr, "Example: $ cidr2ip -f cidrs.txt\n")
110123
fmt.Fprintf(os.Stderr, " $ cidr2ip 10.0.0.0/24\n")
124+
fmt.Fprintf(os.Stderr, " $ cidr2ip -r 10.0.0.0/24\n")
125+
fmt.Fprintf(os.Stderr, " $ cidr2ip -r -f cidrs.txt\n")
111126
fmt.Fprintf(os.Stderr, " $ cat cidrs.txt | cidr2ip \n")
112127
fmt.Fprintf(os.Stderr, "--------------------------\nFlags:\n")
113128
flag.PrintDefaults()

0 commit comments

Comments
 (0)