可以使用golang的net包中的函数来查询真实的ipv4和ipv6地址。具体方法如下:

  1. 获取本机所有网卡的信息:
ifaces, err := net.Interfaces()
if err != nil {
    fmt.Println("Error:", err)
    return
}
  1. 遍历所有网卡,找到对应的真实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地址

桥接模式的网卡上的mac地址是虚拟的不是真实的mac地址无法通过网卡名等信息去查询真实mac地址对应的ipv4和ipv6地址如果此时有网卡名和真实的mac地址golang可以查询出真实的ipv4和ipv6地址吗有什么方法

原文地址: https://www.cveoy.top/t/topic/gI1y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录