Есть ли доступный инструментарий / пакет, который я мог бы использовать для поиска списка беспроводных сетей (SSID), доступных на Java, C # или C для Windows XP +? Мы будем благодарны за любой образец кода.
Как найти список беспроводных сетей (SSID) на Java, C # и / или C?
Ответы (3)
Для C # обратите внимание на Managed Wifi API, который является оболочкой для Native Wifi API, поставляемый с Windows XP SP2 и более поздними версиями.
Я не тестировал этот код, но глядя на образец кода Managed Wifi API, он должен перечислить доступные SSID.
WlanClient client = new WlanClient();
foreach ( WlanClient.WlanInterface wlanIface in client.Interfaces )
{
// Lists all available networks
Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList( 0 );
foreach ( Wlan.WlanAvailableNetwork network in networks )
{
Console.WriteLine( "Found network with SSID {0}.", GetStringForSSID(network.dot11Ssid));
}
}
static string GetStringForSSID(Wlan.Dot11Ssid ssid)
{
return Encoding.ASCII.GetString( ssid.SSID, 0, (int) ssid.SSIDLength );
}
Ну, вы не указали ОС, поэтому для Linux я предлагаю Wireless Tools for Linux от Jean Tourrilhes (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html). Команда iwlist () отображает много информации о доступных сетях. Исходный код находится на C. Другой способ - написать свой собственный код на C, используя libpcap для захвата кадров маяков и извлечения из них SSID (только в режиме монитора). Я еще не тестировал свой код сниффинга, поэтому я не буду вставлять его сюда, но это довольно простая работа.