turjoy Ответов: 4

получить MAC-адрес в окне сообщения с помощью c#


как я могу получить MAC-адрес моего компьютера с помощью c#? я хочу распечатать свой MAC-адрес в окне сообщения... пожалуйста, помогите мне..

[править] правописание [/правка]

Henck

Вот, пожалуйста: http://www.independent-software.com/get-local-machines-mac-address-in-c/

4 Ответов

Рейтинг:
36

OriginalGriff

Если вы имеете в виду MAC-адрес, то:

/// <summary>
/// Gets the MAC address of the current PC.
/// </summary>
/// <returns></returns>
public static PhysicalAddress GetMacAddress()
    {
    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
        {
        // Only consider Ethernet network interfaces
        if (nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet &&
            nic.OperationalStatus == OperationalStatus.Up)
            {
            return nic.GetPhysicalAddress();
            }
        }
    return null;
    }
Затем вы можете просто использовать ToString для отображения адреса:
MessageBox.Show(GetMacAddress().ToString());


Member 8026992

Не работает GetMacAddress возвращает всегда null

OriginalGriff

Так что используйте отладчик и проверьте, что такое NetworkInterface.GetAllNetworkInterfaces возвращается.

Usha Sanjee

Это работает ..:)

Manuel Castillo

работать отлично

Рейтинг:
27

Arigbede Moses

Я добавил туда небольшую поправку со всем должным уважением к OriginalGriff. Это позволит гарантировать, что:
1. Адаптер, который подключен собирают;
2. все виртуальные и псевдо адаптеры не будут рассматриваться, даже если они "подключены".
3. Убедитесь, что нет значения null или пустые МАК добавляется.

string mac = "";
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {

                if (nic.OperationalStatus == OperationalStatus.Up && (!nic.Description.Contains("Virtual") && !nic.Description.Contains("Pseudo")))
                {
                    if (nic.GetPhysicalAddress().ToString() != "")
                    {
                        mac = nic.GetPhysicalAddress().ToString();
                    }
                }
            }
MessageBox.Show(mac);


vishaltn

Какой класс обходится в сетевом интерфейсе принадлежат ? Что я должен импортировать ?

Arigbede Moses

Системы.Нет.Сведений о сети.Сетевом интерфейсе

Рейтинг:
1

Eng Mahmoud Gamal

От WMI

public string GetMACAddress()
{
    ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Win32_NetworkAdapterConfiguration");
    ManagementObjectCollection objMOC = objMOS.Get();
    string MACAddress = String.Empty;
    foreach (ManagementObject objMO in objMOC)
    {
        if (MACAddress == String.Empty) // only return MAC Address from first card   
        {
            MACAddress = objMO["MacAddress"].ToString();
        }
        objMO.Dispose();
    }
    MACAddress = MACAddress.Replace(":", "");
    return MACAddress;
}


Рейтинг:
0

Eng Mahmoud Gamal

от системы.Сетевое пространство имен:

public string GetMACAddress()
{
    NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
    String sMacAddress = string.Empty;
    foreach (NetworkInterface adapter in nics)
    {
        if (sMacAddress == String.Empty)// only return MAC Address from first card
        {
            IPInterfaceProperties properties = adapter.GetIPProperties();
            sMacAddress = adapter.GetPhysicalAddress().ToString();
        }
    } return sMacAddress;
}


[no name]

потрясающий код ... у меня есть адрес...спасибо дружище

Eng Mahmoud Gamal

добро пожаловать ^_^

Filip Puškáš

Привет, сначала спасибо за этот код ... Я хочу знать, почему он показывает другой MAC-адрес в качестве решения 2, Спасибо