对于IP地址可以表示一个网络连接,但是无法唯一标识一台主机,而MAC地址是主机网卡的物理地址,这个对于一台主机来说是不会改变的。

func mac(){
	// 获取本机的MAC地址
	interfaces, err := net.Interfaces()
	if err != nil {
		panic("Poor soul, here is what you got: " + err.Error())
	}
	for _, inter := range interfaces {
	fmt.Println(inter.Name)
	mac := inter.HardwareAddr //获取本机MAC地址
	fmt.Println("MAC = ", mac)
}
}

上面的代码可以获得主机上的所有网卡的物理地址(例如笔记本电脑可以连接无线网和有线连接,这就是两个不同的MAC地址)
所以一般取第一个MAC地址作为唯一标识。

func mac(){
	// 获取本机的MAC地址
	interfaces, err := net.Interfaces()
	if err != nil {
		panic("Poor soul, here is what you got: " + err.Error())
	}
	//for _, inter := range interfaces {
	//fmt.Println(inter.Name)
	inter := interfaces[0]
	mac := inter.HardwareAddr.String() //获取本机MAC地址
	fmt.Println("MAC = ", mac)

	//}
}