2

私はこれを持っています:

WLAN_AVAILABLE_NETWORK_LIST *wlanNetworkList = (WLAN_AVAILABLE_NETWORK_LIST*)WlanAllocateMemory(sizeof(WLAN_AVAILABLE_NETWORK_LIST));

WlanGetAvailableNetworkList() 関数を使用して、ネットワークに関する情報を取得します。

しかし、この情報には MAC アドレスやチャネルはありません。それを取得する方法は?

4

2 に答える 2

4

あなたが探している情報はWLAN_BSS_ENTRY構造にあると思います。

ネットワークには複数のアクセス ポイントが存在する可能性があるため、ネットワークに単一の MAC アドレスが存在しないことは少なくとも理にかなっています (アドホック ネットワークも考慮してください)。したがって、MAC アドレスはネットワークの一部ではありません。ネットワークのプロパティ (WLAN_AVAILABLE_NETWORK構造体のデータ メンバーではありません)。

WlanGetNetworkBssList( msdn library entry ) を使用すると、特定のネットワーク (SSID を渡すことにより) またはワイヤレス LAN インターフェイスのすべてのネットワークの BSS エントリのリストを取得できます。この関数はアクセス ポイントにクエリを実行することに注意してください。

各ワイヤレス ネットワークに対して返される情報のリストには、インフラストラクチャ BSS ネットワークの各アクセス ポイントまたは独立 BSS ネットワーク (アドホック ネットワーク) のネットワーク ピアによって返される情報要素のリストも含まれます。


ちなみに、WLAN_AVAILABLE_NETWORK_LIST構造体にバッファを割り当てる必要はないと思いますWlanAllocateMemory. MSDN:

返された WLAN_AVAILABLE_NETWORK_LIST のバッファは、呼び出しが成功した場合、WlanGetAvailableNetworkList 関数によって割り当てられます。

ただし、関数がリストに割り当てたメモリを を介して解放する必要がありますWlanFreeMemory

msdn ライブラリの例(そのページの下部) も参照してください。

編集:この例は少し混乱しています。名前が示すように、pBssListPWLAN_AVAIBLE_NETWORK_LISTではないという変数があります。PWLAN_BSS_LIST

于 2012-05-30T17:33:41.047 に答える