È disponibile un kit di strumenti/pacchetto che è possibile utilizzare per trovare un elenco di reti wireless (SSID) disponibili in Java, C# o C per Windows XP +? Qualsiasi codice di esempio sarebbe apprezzato.Come trovare un elenco di reti wireless (SSID) in Java, C# e/o C?
risposta
Per C#, dare un'occhiata allo Managed Wifi API, che è un wrapper per il Native Wifi API fornito con Windows XP SP2 e versioni successive.
Non ho testato questo codice, ma guardando il codice di esempio dell'API WiFi gestito, questo dovrebbe elencare gli SSID disponibili.
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);
}
Be ', non ha specificato il sistema operativo in modo, per Linux io suggerisco Wireless Tools per Linux da Jean Tourrilhes (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html). Il comando iwlist() visualizza molte informazioni sulle reti disponibili. Il codice sorgente è in C. Un altro modo è scrivere il proprio codice in C usando libpcap per catturare i frame beacon ed estrarre SSID da essi (solo in modalità monitor). Non ho ancora testato il mio codice di sniffing, quindi non lo incollerò qui, ma è un lavoro piuttosto semplice.
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) );
}
sembra che non abbiamo alcun modo, tranne in questo modo –
- 1. API iOS rileva reti wireless
- 2. Come posso ottenere un elenco di reti wireless disponibili su Linux?
- 3. linux: come ottenere ssid wireless senza permesso di root?
- 4. RBF reti neurali C#
- 5. Come il comando iwlist() esegue la scansione delle reti wireless?
- 6. Trovare un elemento in un elenco <> utilizzando C#
- 7. Come creare due reti in un progetto C++ eclisse
- 8. suggerimenti su un progetto in C++/sistemi/reti distribuiti
- 9. Come ottenere un elenco secondario in C#
- 10. Come posso troncare un elenco in C#?
- 11. Come ordinare un elenco in C#
- 12. Come passare un elenco di oggetti da C++ a C#?
- 13. Inizializzazione di un elenco generico in C#
- 14. Un array di elenco in C#
- 15. Ordinamento di un elenco collegato in C
- 16. iPhone ottiene un elenco di tutti gli SSID senza libreria privata
- 17. Creazione di un elenco distinto in C#
- 18. Interfaccia elenco: da Java a C#
- 19. iPhone: come connettersi automaticamente a un SSID wifi noto?
- 20. C# Rimozione di un elenco da un elenco
- 21. Come accodare un elenco di elementi in C#?
- 22. Come si crea un elenco di array multidimensionali in C#?
- 23. Ordinamento di un elenco di oggetti in C#
- 24. Memorizzazione di un elenco di oggetti arbitrari in C++
- 25. Filtrare un elenco da un altro elenco C#
- 26. Concatenazione di un C# Elenco di byte []
- 27. Cancellare un elenco a discesa in C#
- 28. main() in C, C++, Java, C#
- 29. rimozione di duplicati da un elenco C#
- 30. Come distinguere tra diverse reti wifi?
Ho aggiornato la domanda per specificare Windows XP +. –