桥接模式的网卡上的mac地址是虚拟的不是真实的mac地址无法通过网卡名等信息去查询真实mac地址对应的ipv4和ipv6地址如果此时有网卡名和真实的mac地址golang可以查询出真实的ipv4和ipv6地址吗有什么方法
可以使用golang的net包中的函数来查询真实的ipv4和ipv6地址。具体方法如下:
- 获取本机所有网卡的信息:
ifaces, err := net.Interfaces()
if err != nil {
fmt.Println("Error:", err)
return
}
- 遍历所有网卡,找到对应的真实mac地址:
for _, iface := range ifaces {
if iface.HardwareAddr.String() == "真实的mac地址" {
addrs, err := iface.Addrs()
if err != nil {
fmt.Println("Error:", err)
return
}
for _, addr := range addrs {
ip, _, err := net.ParseCIDR(addr.String())
if err != nil {
fmt.Println("Error:", err)
continue
}
if ip.To4() != nil {
fmt.Println("IPv4 address:", ip)
} else {
fmt.Println("IPv6 address:", ip)
}
}
}
}
注意:在遍历网卡信息时,需要判断网卡的类型(例如loopback、wireless等),只有符合条件的网卡才能查询到对应的ipv4和ipv6地址
原文地址: https://www.cveoy.top/t/topic/gI1y 著作权归作者所有。请勿转载和采集!