4

有没有办法获得我所在地区所有 SSID 及其可到达信号的 MAC 地址的列表?

我在我的 c# 代码中尝试了 Nativ WlanApi。我得到的是所有 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);
}

我希望有办法。

4

2 回答 2

1

为了获得 MAC 地址,您需要连接到该无线网络。连接后,您应该能够使用与传统有线网络相同的方法获取直接网络上机器的 MAC 地址 - 我相信最好的方法是解析arp -a命令的输出。

于 2009-11-29T13:57:10.717 回答
0

这是解决方案:

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 相关联。

于 2010-11-28T20:44:09.900 回答