Получить список всех SSID и их MAC-адрес - PullRequest
4 голосов
/ 29 ноября 2009

Есть ли способ получить список всех SSID и их mac-адресов доступных сигналов в моем регионе?

Я попробовал Nativ WlanApi в своем коде c #. То, что я получаю, это список всех ssid, но для Получив их MAC-адрес, я понятия не имею.

Это код, который я использовал для получения списка:

private void show_all_ssids_Click(object sender, EventArgs e)
{
  WlanClient client = new WlanClient();
  foreach ( WlanClient.WlanInterface wlanIface in client.Interfaces )
  {
    // Lists all available networks
    Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList( 0 );
    this.ssidList.Text = "";
    foreach ( Wlan.WlanAvailableNetwork network in networks )
    {                    
      //Trace.WriteLine(  GetStringForSSID(network.dot11Ssid));
      this.ssidList.Text += GetStringForSSID(network.dot11Ssid) + "\r\n";
    }
  }
}
static string GetStringForSSID(Wlan.Dot11Ssid ssid)
{
  return Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);
}

Я надеюсь, что есть способ.

Ответы [ 2 ]

1 голос
/ 29 ноября 2009

Чтобы получить MAC-адрес, вам необходимо подключиться к этой беспроводной сети. После того, как вы подключитесь, вы сможете получить MAC-адрес компьютеров в непосредственной сети, используя те же методы, что и в традиционных проводных сетях. Я считаю, что лучший способ сделать это - проанализировать вывод arp -a команда.

0 голосов
/ 28 ноября 2010

это решение:

Dim networksBss As Wlan.WlanBssEntry() = SelectedWifiAdapter.GetNetworkBssList()

For car = 0 To networksBss(i).dot11Bssid.Length - 1
If Len(Hex(networksBss(i).dot11Bssid(car))) = 1 Then ThisScan(i).MAC = ThisScan(i).MAC & "0"
ThisScan(i).MAC = ThisScan(i).MAC & Hex(networksBss(i).dot11Bssid(car)) & ":"

Next

В любом случае, я все еще ищу способ найти детали (прочность) сетей с SSID="", связывая его с соответствующим MAC.

...