Как получить SSID и RSSI для Win7 с помощью C # - PullRequest
4 голосов
/ 25 февраля 2010

Я очень новичок в Win7 и WMI. Посоветуйте, пожалуйста, где найти активную точку доступа с WiFi и как получить ssid / rssi для каждой точки доступа.

Я использую:

ManagementClass mc = new ManagementClass("root\\WMI", "MSNdis_80211_ServiceSetIdentifier", null);          
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(@"root\wmi","SELECT * FROM MSNdis_80211_BSSIList");

но я получил 0 результатов. Этот класс поддерживает Win7? Кто-нибудь может помочь?

Ответы [ 2 ]

5 голосов
/ 02 января 2012

У меня была похожая проблема, когда мне нужно было получить SSID в настоящее время подключенной сети Wi-Fi, но не хотелось создавать оболочку для API из-за ее сложности, поэтому решил, почему бы не использовать netsh

        ProcessStartInfo info = new ProcessStartInfo("netsh", "wlan show interfaces");
        info.WorkingDirectory = @"%WINDIR%\system32";
        info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        info.CreateNoWindow = true;
        info.RedirectStandardOutput = true;
        info.UseShellExecute = false;
        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo = info;
        proc.Start();

тогда вы можете просто получить выходные данные из proc.StandardOutput.ReadToEnd ();разобрать, что вы хотите из строки:

"\r\n There is 1 interface on the system: \r\n\r\n
Name                   : Wireless Network Connection\r\n
Description            : Atheros AR9285 Wireless Network Adapter\r\n
GUID                   : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\n
Physical address       : xx:xx:xx:xx:xx:xx\r\n
State                  : connected\r\n
SSID                   : Dynex2\r\n
BSSID                  : xx:xx:xx:xx:xx:xx\r\n
Network type           : Infrastructure\r\n
Radio type             : 802.11g\r\n
Authentication         : WPA2-Personal\r\n
Cipher                 : CCMP\r\n
Connection mode        : Auto Connect\r\n
Channel                : 1\r\n
Receive rate (Mbps)    : 54\r\n
Transmit rate (Mbps)   : 54\r\n
Signal                 : 100% \r\n
Profile                : Dynex2 \r\n\r\n
Hosted network status  : Not available\r\n\r\n"

Гораздо проще разобрать строку, чем написать оболочку для API. Надеюсь, это поможет

0 голосов
/ 25 февраля 2010

Вместо WMI вы можете использовать Управляемый Wifi API .

Проверить этот вопрос Получить SSID беспроводной сети, к которой я подключен с C # .Net в Windows Vista

Некоторое время назад я написал пример с использованием delphi-prism, очень похожий на C #. http://theroadtodelphi.wordpress.com/2009/09/30/detecting-wifi-networks-using-delphi-prism/

...