发布时间:2024-12-28 03:48:46
在开发过程中,有时候我们需要获取设备的网络接口信息,尤其是对外网卡的信息。通过获取对外网卡,我们可以获取到网络连接状态、IP地址等信息,从而实现一些网络相关的功能。
在Golang中,可以使用net包提供的一些函数来获取对外网卡。例如,通过调用net.Interfaces()方法,可以获取到所有网络接口的列表,然后遍历这个列表,获取对外网卡的信息。
```go package main import ( "fmt" "net" ) func main() { interfaces, err := net.Interfaces() if err != nil { fmt.Println("Failed to get interfaces:", err) return } for _, iface := range interfaces { if iface.Flags&net.FlagUp != 0 && iface.Flags&net.FlagLoopback == 0 { addrs, err := iface.Addrs() if err != nil { fmt.Println("Failed to get addresses for interface", iface.Name, ":", err) continue } for _, addr := range addrs { ip, _, err := net.ParseCIDR(addr.String()) if err != nil { fmt.Println("Failed to parse address", addr, ":", err) continue } if ip.To4() != nil { fmt.Println("Found external interface:", iface.Name) fmt.Println("IPv4 address:", ip) } } } }