net

1、获取Mac Addr、IP、Mask

    // 此处填你的网卡名称(因为你的需求是根据网卡名字获取XXX)
    inter, err :=  net.InterfaceByName("eno16777736")
    if err != nil {
        log.Fatalf("无法获取信息: %v", err)
    }

    // 获取Mac地址
    fmt.Println("Mac addr: ", inter.HardwareAddr.String())

    addrs, err := inter.Addrs()
    if err != nil {
        log.Fatalln(err)
    }

    // 获取IP地址,子网掩码
    for _, addr := range addrs {
        if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() {
            if ip.IP.To4() != nil {
                fmt.Println("IP:", ip.IP)
                fmt.Println("Mask:", ip.Mask)
            }
        }
    }

2、获取DNS地址

/etc/resolv.confdns server

然后进行规则解析即可

3、获取物理地址

ARP(Address Resolution Protocol),地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址

这个篇幅很大了,简单来说就是根据IP地址获取物理地址。网上有不少资料,你可以去看看。


你要想一下,你需要的这几个东西,不是一个包能完成的

因为他们不完全是同一个东西,各司其职