Я использую Visual Studio для Mac, используя C#. Я пробовал system.net.networkinformation, но он дает пустую строку.
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
if (nic.OperationalStatus == OperationalStatus.Up)
{
mac += nic.GetPhysicalAddress().ToString();
//Console.WriteLine(mac);
break;
}
}
Это то, что я использую для получения MAC-адреса. Он отлично работает в настольном приложении Windows, но не работает в os x. Я пытаюсь получить MAC-адрес рабочего стола Mac для его уникальной идентификации.
привет пожалуйста проверьте сейчас.
Вы используете Xamarin.Mac? Если вы пытаетесь получить уникальный идентификатор, используйте IOPlatformUUID (через I / O Kit), а не Mac-адрес интерфейса, так как они легко подделываются.
Нет, я использую Visual Studio для Mac. Есть ли другой способ однозначно идентифицировать устройство?
я получил ответ от expert-exchange.com/questions/27686162/… здесь





Ниже функция дает точные MAC-адреса, которые мне нужны.
public static string GetMacAddress()
{
System.Net.NetworkInformation.NetworkInterfaceType Type = 0;
string MacAddress = string.Empty;
try
{
System.Net.NetworkInformation.NetworkInterface[] theNetworkInterfaces = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
foreach (System.Net.NetworkInformation.NetworkInterface currentInterface in theNetworkInterfaces)
{
Type = currentInterface.NetworkInterfaceType;
if (Type == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet || Type == System.Net.NetworkInformation.NetworkInterfaceType.GigabitEthernet || Type == System.Net.NetworkInformation.NetworkInterfaceType.FastEthernetFx)
{
MacAddress = currentInterface.GetPhysicalAddress().ToString();
break;
}
}
return MacAddress;
}
catch
{
// your code goes here
}
}
Не могли бы вы добавить некоторые детали к вашему вопросу? Кроме того, прочтите stackoverflow.com/help/how-to-ask