locked
Visual Studio 2005 c# WMI MacAddress 錯誤 RRS feed

  • 問題

  • dear All:

     

    小弟用WMI抓MacAddress出現的MacAddress如下
    00:20:ED:09:24:8A
    00:00:00:00:42:00
    00:00:00:00:00:00
    86:06:03:00:04:C0
    00:00:00:00:AD:FF
    84:0B:16:03:01:04
    00:00:00:00:E0:CD
    只有第一個MacAddress是對的後來發現在WMI Tools
    裡的WMI Object Browser直接看MacAddress也是同樣的情況??
    不知道是否有解決的方法?

    OS Windows XP sp2
    Microsoft Visual Studio 2005
    .NET Framework 3 sp1

     


    c#程式碼
    ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSNdis_80211_BSSIList");
                    ManagementObjectCollection moc = mos.Get();
                    ManagementObjectCollection.ManagementObjectEnumerator moe = moc.GetEnumerator();
                    moe.MoveNext();
                    GroupAPs.Text =  moe.Current.Properties["NumberOfItems"].Value +"  AP active ";

                     ManagementBaseObject[] objarr = (ManagementBaseObject[])moe.Current.Properties["Ndis80211BSSIList"].Value;

                     foreach (ManagementBaseObject queryObj in objarr)
                     {
                         Byte[] bssidChars = (Byte[])queryObj["Ndis80211MacAddress"];

                         string bssidStr = "";
                         for (int i = 0; i < bssidChars.Length; i++)
                         {
                             //Convert to hex
                             bssidStr += bssidCharsIdea.ToString("X2").ToUpper();
                             if ((i + 1) < bssidChars.Length)
                                 bssidStr += ":";                       
                         }
                        
                         bssidStrTemp += bssidStr.ToString()+"\n";


                         if (bssidStrTemp != textBox1.Text)
                         {
                            textBox1.Text = bssidStrTemp;
                         }

    2008年4月1日 上午 09:45

所有回覆

  • 執行wmic nic看一下你就會知道還有很多內建的虛擬介面卡,用眼睛看過之後應該就知道還要判斷一下NetConnectionID有值的才需要抓MAC Address。

    2008年4月1日 下午 01:34
  • 先謝謝Eric Tsai版大的回履:

     

    對不起,我上面的說明不夠詳細

    我的問題是 "Ndis80211MacAddress" 是無線AP (Access Point) 的 MacAddress,虛擬介面卡我已經有濾過了,如果我掃到的AP有超過二個以上,第二個AP 的 MacAddress 是錯的如

    00:20:ED:09:24:8A  ←這是第一個AP MacAddress
    00:00:00:00:42:00  ←以下是第二個以上AP MacAddress 是錯的
    00:00:00:00:00:00
    86:06:03:00:04:C0
    00:00:00:00:AD:FF
    84:0B:16:03:01:04
    00:00:00:00:E0:CD

     

     

    用在 WMI Object Browser 裡 root/WMI/MSNdis_80211_BSSIList選網路介面卡/Ndis80211BSSIList(Value/Array)/Ndis80211MacAddress(Value/這欄的值)

     

    2008年4月1日 下午 02:03