golang获取所有实际物理网卡
要获取所有实际物理网卡,可以使用net包中的Interfaces()函数。以下是一个示例代码:
package main
import (
"fmt"
"net"
)
func main() {
interfaces, err := net.Interfaces()
if err != nil {
fmt.Println("Failed to get network 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 {
ipNet, ok := addr.(*net.IPNet)
if ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
fmt.Println("Interface:", iface.Name)
fmt.Println("IP Address:", ipNet.IP)
}
}
}
}
}
这段代码会遍历所有网络接口,过滤掉回环接口和未启用的接口,并输出每个接口的名称和IP地址。
原文地址: https://www.cveoy.top/t/topic/hZaO 著作权归作者所有。请勿转载和采集!