在Go语言中如何查找一个IP地址的网络地址?
在go语言中查找一个IP地址的网络地址是相当简单,便捷的,我们可以用Golang的net包来找出一个IP地址背后的网络。
示例代码:
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())
}
输出 :
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
相关文章