Hi,
ich habe einen Problem bei einem kleinen Projekt welches ich gerade schreibe. Es geht um einen IP Scanner fürs LAN, der Teil eines kleinen Netzwerktools ist.
Ich versuche via Sockets eine bestimmte IP Range abzufragen (256 Adressen, der User muss z.B. 100.100.100, als Grundnetz angeben und folgend werden dann 100.100.100.1, 100.100.100.2 etc. geprüft).
Wenn ich das ganze Teste für z.B. 10 IPs mit Socket Timeout 100 findet er die IPs manchmal, aber auch nicht immer, wenn ich nun aber für 20,30 oder gar 256 den Test ausführe schlagen leider alle Versuche fehl.
Mit einem Timeout von 1000 scheint es zu gehen, aber für einen IP Scan 4 Min. 30 Sek. warten möchte wohl keiner.
Deswegen hier die Frage, kennt jemand das Problem oder noch besser, gibt es eine Lösung?
Ich will das ganze nicht in 2 Sekunden fertig haben, das es etwas dauert mit den Sockets ist kein Problem, nur fast 5 Minuten ist etwas übertrieben.
ich habe einen Problem bei einem kleinen Projekt welches ich gerade schreibe. Es geht um einen IP Scanner fürs LAN, der Teil eines kleinen Netzwerktools ist.
Ich versuche via Sockets eine bestimmte IP Range abzufragen (256 Adressen, der User muss z.B. 100.100.100, als Grundnetz angeben und folgend werden dann 100.100.100.1, 100.100.100.2 etc. geprüft).
Wenn ich das ganze Teste für z.B. 10 IPs mit Socket Timeout 100 findet er die IPs manchmal, aber auch nicht immer, wenn ich nun aber für 20,30 oder gar 256 den Test ausführe schlagen leider alle Versuche fehl.
Mit einem Timeout von 1000 scheint es zu gehen, aber für einen IP Scan 4 Min. 30 Sek. warten möchte wohl keiner.
Deswegen hier die Frage, kennt jemand das Problem oder noch besser, gibt es eine Lösung?
Ich will das ganze nicht in 2 Sekunden fertig haben, das es etwas dauert mit den Sockets ist kein Problem, nur fast 5 Minuten ist etwas übertrieben.
Code:
//host entspricht z.b. 100.100.100. und hostpart2 ist dann der Index der in der Schleife hochgezählt wird.
String host2 = host + hostpart2;
SocketAddress sa=new InetSocketAddress(host2,port);
Socket clientSocket = null;
clientSocket = new Socket();
try {
clientSocket.connect(sa,100);
clientSocket.close();
System.out.println(host2);
}
catch (IOException e) {
}
hostpart2++;
Zuletzt bearbeitet: