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地址获取物理地址。网上有不少资料,你可以去看看。
你要想一下,你需要的这几个东西,不是一个包能完成的
因为他们不完全是同一个东西,各司其职