Wie eine Liste von drahtlosen Netzwerken (SSID) in Java, C # und / oder C zu finden?
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.
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.