今天发现获取mac地址发现了一个问题,有的电脑有多个mac地址 怎么判断是当前网络用的mac呢?
下面代码获取mac 拿到的是众多mac地址中的第一个
private static string GetMacAddress()
{
string physicalAddress = "";
NetworkInterface[] nice = NetworkInterface.GetAllNetworkInterfaces();
for (int i = 0; i < nice.Length; i++)
{
print("sdsdsd : " + nice[i].ToString());
}
foreach (NetworkInterface adaper in nice)
{
print("nice:" + nice);
Debug.Log("ad: " + adaper.Description);
if (adaper.Description == "en0")
{
physicalAddress = adaper.GetPhysicalAddress().ToString();
break;
}
else
{
physicalAddress = adaper.GetPhysicalAddress().ToString();
if (physicalAddress != "")
{
break;
};
}
}
return physicalAddress;
}
当前wifi使用的mac地址,如果想要以太网的mac 将Wireless80211 改为Ethernet
public static string GetmacAddress()
{
string strphysicalAddress = "";
var interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (var iface in interfaces)
{
if (iface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && iface.OperationalStatus == OperationalStatus.Up)
{
var physicalAddress = iface.GetPhysicalAddress();
var macAddress = physicalAddress.ToString();
Debug.Log("Current MAC address: " + macAddress);
strphysicalAddress = macAddress;
break;
}
else
{
var physicalAddress = iface.GetPhysicalAddress();
var macAddress = physicalAddress.ToString();
Debug.Log("没网的 MAC address: " + macAddress);
}
}
return strphysicalAddress;
}