Frage

Gibt es ein Toolkit / Paket, das zur Verfügung steht, dass ich eine Liste der drahtlosen Netzwerke (SSID) finden verwenden könnte, die in verfügbar sind entweder Java, C # oder C für Windows XP +? Alle Beispielcode würde geschätzt.

War es hilfreich?

Lösung

Für C #, werfen Sie einen Blick auf die Managed rel="noreferrer">, das ist ein Wrapper für die native Wifi API mit Windows XP SP2 zur Verfügung gestellt und später.

ich diesen Code nicht getestet, aber auf Managed Wireless LAN API Beispielcode sucht, sollte die verfügbare SSIDs Liste.

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 );
}

Andere Tipps

ArrayList<String>ssids=new ArrayList<String>();
ArrayList<String>signals=new ArrayList<String>();
ProcessBuilder builder = new ProcessBuilder(
        "cmd.exe", "/c", "netsh wlan show all");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
    line = r.readLine();
    if (line.contains("SSID")||line.contains("Signal")){
        if(!line.contains("BSSID"))
            if(line.contains("SSID")&&!line.contains("name")&&!line.contains("SSIDs"))
            {
                line=line.substring(8);
                ssids.add(line);

            }
            if(line.contains("Signal"))
            {
                line=line.substring(30);
                signals.add(line);

            }

            if(signals.size()==7)
            {
                break;
            }

    }

}
for (int i=1;i<ssids.size();i++)
{
    System.out.println("SSID name == "+ssids.get(i)+"   and its signal == "+signals.get(i)  );
}

Nun, man hat nicht angegeben OS so, für Linux I Wireless Tools für Linux von Jean Tourrilhes ( http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html ). Der iwlist () Befehl zeigt eine Vielzahl von Informationen über die verfügbaren Netzwerke. Der Quellcode ist in C. Einem anderen Weg ist Ihren eigenen Code in C zu schreiben, mit libpcap das Beacon-Frames für die Erfassung und Extraktion SSID von ihnen (im Monitor-Modus). Ich habe meine Schnüffeln Code noch nicht getestet, so will ich es hier nicht einfügen, aber es ist ziemlich einfache Aufgabe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top