Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

Как получить mac адреса роутеров? c#

На codeplex есть что-то похожее, но там нету получения mac адреса устройства. Как можно получить весь список имен и мак адресов роутеров (wifi точек)?


Ответ

BSSID (а также уровень сигнала в дБм) можно получить, вызвав метод GetNetworkBssList
// вывод MAC в виде ХХ:ХХ:ХХ:ХХ:ХХ:ХХ static string GetStringForBSSID(byte[] bssid) { var result = new StringBuilder();
result.Append(bssid[0].ToString("X2")); for (int i = 1; i < bssid.Length; ++i) { result.Append(":").Append(bssid[i].ToString("X2")); }
return result.ToString(); }
static string GetStringForSSID(Wlan.Dot11Ssid ssid) { return Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength); }
public static void Main(string[] args) { var client = new WlanClient();
if (client.Interfaces.Length < 1) throw new InvalidOperationException("Wireless adapter not found.");
Console.WriteLine("SSID\t\t\tBSSID\t\t\tRSSI"); Console.WriteLine("-------------------------------------------------------");
WlanClient.WlanInterface nic = client.Interfaces[0]; foreach (Wlan.WlanAvailableNetwork network in nic.GetAvailableNetworkList(0)) { string ssid = GetStringForSSID(network.dot11Ssid);
Wlan.WlanBssEntry[] bssList = nic.GetNetworkBssList( network.dot11Ssid, network.dot11BssType, network.securityEnabled);
int rssi = 0; string bssid = ""; if (bssList.Length > 0) { rssi = bssList[0].rssi; bssid = GetStringForBSSID(bssList[0].dot11Bssid); }
Console.WriteLine("{0,-16}\t{1,-8}\t{2} dBm", ssid, bssid, rssi); } }

Комментариев нет:

Отправить комментарий