На 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);
}
}
Комментариев нет:
Отправить комментарий