Golang : Find network of an IP address
We will learn how to use Golang's net
package to find out the network behind an IP address. It is fairly trivial to do so with Go and below is the source code.
findnetwork.go
package main
import (
"fmt"
"net"
"os"
)
func main() {
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "Usage: %s hostname\n", os.Args[0])
os.Exit(1)
}
hostname := os.Args[1]
IPAddr, err := net.ResolveIPAddr("ip", hostname)
if err != nil {
fmt.Println("Error in resolving IP")
os.Exit(1)
}
addr := net.ParseIP(IPAddr.String())
if addr == nil {
fmt.Println("Invalid address")
os.Exit(1)
}
mask := addr.DefaultMask()
network := addr.Mask(mask)
fmt.Printf("Address : %s \n Network : %s \n", addr.String(), network.String())
}
Sample output :
localhost:~ admin$ ./findnetwork www.nytimes.com
Address : 170.149.172.130
Network : 170.149.0.0
localhost:~ admin$ ./findnetwork www.techcrunch.com
Address : 192.0.83.250
Network : 192.0.83.0
localhost:~ admin$ ./findnetwork www.google.com
Address : 74.125.130.104
Network : 74.0.0.0
localhost:~ admin$ ./findnetwork www.yahoo.com
Address : 106.10.139.246
Network : 106.0.0.0
Reference :
See also : Get client IP Address in Go
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+11k Golang : Replace a parameter's value inside a configuration file example
+14.2k Golang : Check if a file exist or not
+8.8k Golang : Random integer with rand.Seed() within a given range
+18.6k Golang : Set, Get and List environment variables
+9.3k Golang : Generate Codabar
+15.2k Golang : package is not in GOROOT during compilation
+9.5k Golang : Scramble and unscramble text message by randomly replacing words
+19k Golang : Read input from console line
+10.4k Golang : Generate random integer or float number
+5.3k Javascript : Change page title to get viewer attention
+17.5k Golang : Check if IP address is version 4 or 6
+15.7k Golang : Force download file example