Windows Phone獲取WiFi BSSID
BSSID,一種特殊的Ad-hoc LAN的應用,也稱為Basic Service Set (BSS),一群計算機設定相同的BSS名稱,即可自成一個group。每個BSS都會被賦予一個BSSID,它是一個長度為48位的二進制標識符,用來識別不同的BSS。其的主要優點是它可以作為過濾之用。
BSSID 是指站點的 MAC 地址,(STA)在一個接入點,(AP)在一個基礎架構模式, BSS 是由 IEEE 802.11-1999 無線局域網規范定義的。這個區域唯一地定義了每個 BSS 。在一個 IBSS 中,BSSID 是一個本地管理的 IEEE MAC 地址,從一個 46 位的任意編碼中產生。地址的個體/組位被設置為 0 。通用/本地地址位被設置為 1 。
以上話來自百度百科。
之前開發的時候是為了獲取手機所連接的熱點的MAC 地址,所以一直是尋找WiFi MAC 地址相關的API或者方法,但沒有成功。
位置數據可表示為 BSSID(如果網絡適配器媒體類型是無線 LAN),或不是為元組 <ChassisId, Port Number>(如果網絡適配器類型是以太網)。根據 LLDP 協議表示數據。
有關如何檢索 LanIdentifier 對象表示的數據的示例,請參見 如何檢索網絡適配器和位置信息。
直接貼代碼吧
string GetLanIdentifierData(LanIdentifier lanIdentifier) { string lanIdentifierData = string.Empty; if (lanIdentifier == null) { return lanIdentifierData; } if (lanIdentifier.InfrastructureId != null) { lanIdentifierData += "Infrastructure Type: " + lanIdentifier.InfrastructureId.Type + "\n"; lanIdentifierData += "Infrastructure Value: "; var infrastructureIdValue = lanIdentifier.InfrastructureId.Value; foreach (var value in infrastructureIdValue) { lanIdentifierData += value + " "; } } if (lanIdentifier.PortId != null) { lanIdentifierData += "\nPort Type : " + lanIdentifier.PortId.Type + "\n"; lanIdentifierData += "Port Value: "; var portIdValue = lanIdentifier.PortId.Value; foreach (var value in portIdValue) { lanIdentifierData += value + " "; } } if (lanIdentifier.NetworkAdapterId != null) { lanIdentifierData += "\nNetwork Adapter Id : " + lanIdentifier.NetworkAdapterId + "\n"; } return lanIdentifierData; }
其中 lanIdentifier.InfrastructureId.Value 就是BSSID了,需要取出來,并且轉為16進制。
for (int i = 0; i < lanIdentifier.InfrastructureId.Value.Count; i++)
{ lanIdentifierData += lanIdentifier.InfrastructureId.Value[i].ToString("X2"); }
這獲取的就是BSSID了,至少我獲取的值與iPhone獲取的值對比是一樣的。
另外,IReadOnlyList<LanIdentifier> lanIdentifiers = NetworkInformation.GetLanIdentifiers(); Windows 8也支持。
希望對您有幫助。

浙公網安備 33010602011771號