Frage

Ich mag die MAC-Adresse des Bluetooth-Geräts auf dem PC, um meine Anwendung läuft.

Ich habe versucht, die folgenden:

private void GetMacAddress()
{
     string macAddresses = "";
     foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
     {
          if (nic.OperationalStatus == OperationalStatus.Up)
          {
               macAddresses += nic.GetPhysicalAddress().ToString();
               Console.WriteLine(macAddresses);
          }
     }
}

Aber der Ausgang nicht übereinstimmt mit ‚ipconfig / all‘ in Commandprompt. Es ist nicht meine blueotths MAC-Adresse drucken. Jede Lösung?

Ich bin bereit, den Ausgang I von ‚ipconfig / all‘ erhalten zu analysieren, aber wie bekomme ich die Ausgabe als String?

War es hilfreich?

Lösung

Sie können vielleicht WMI verwenden, um die Ergebnisse zu erhalten. Hiermit ein Link zu einer WMI-Lösung, die die Netzwerkgeräte Trails durch.

Ich bin hier den Code bei der Veröffentlichung ist die Website nach unten, aber alle Kredit geht an den ursprünglichen Autor, PsychoCoder. Verwendung von WMI-MAC-Adresse in C #

bekommen

Und der Code:

//Namespace reference
using System.Management;

/// <summary>
/// Returns MAC Address from first Network Card in Computer
/// </summary>
/// <returns>MAC Address in string format</returns>
public string FindMACAddress()
{
    //create out management class object using the
    //Win32_NetworkAdapterConfiguration class to get the attributes
    //af the network adapter
    ManagementClass mgmt = new ManagementClass("Win32_NetworkAdapterConfiguration");
    //create our ManagementObjectCollection to get the attributes with
    ManagementObjectCollection objCol = mgmt.GetInstances();
    string address = String.Empty;
    //My modification to the code
    var description = String.Empty;
    //loop through all the objects we find
    foreach (ManagementObject obj in objCol)
    {
        if (address == String.Empty)  // only return MAC Address from first card
        {
            //grab the value from the first network adapter we find
            //you can change the string to an array and get all
            //network adapters found as well
            if ((bool)obj["IPEnabled"] == true)
            {
                address = obj["MacAddress"].ToString();
                description = obj["Description"].ToString();
            }
        }
       //dispose of our object
       obj.Dispose();
    }
    //replace the ":" with an empty space, this could also
    //be removed if you wish
    address = address.Replace(":", "");
    //return the mac address
    return address;
}

Achten Sie darauf, den Verweis auf System.Management aufzunehmen. Damit Sie die Netzwerkgerätenamen zu erhalten, können Sie die obj["Description"].ToString(); verwenden

Sie können auch einen Blick auf MSDN über WMI haben, speziell auf die Klasse Win32_NetworkAdapterConfiguration

Hope, das hilft.

Andere Tipps

public static PhysicalAddress GetBTMacAddress()  {

    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) {

        // Only consider Bluetooth network interfaces
        if (nic.NetworkInterfaceType != NetworkInterfaceType.FastEthernetFx && 
            nic.NetworkInterfaceType != NetworkInterfaceType.Wireless80211){

            return nic.GetPhysicalAddress();
        }
    }
    return null;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top