在Go语言中如何查找一个IP地址的网络地址?

2023-06-01 00:00:00 语言 地址 网络地址

在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

相关文章