Das ganze ist ATM noch ein HTTP-Scanner. Ich habe ihm vor allem zum lernen geschrieben, sein entgültiges Anwendungsgebiet ist aber geheim.
Leider findet er nichts. Irgendwo in der momentangen 2-Byte-großen Range muss sich der Server von heise.de befinden. Wenn ich einzeln Scanne passt alles. Nur wenn ich die ganze Range durchchecke findet er absolut nichts. Ich dachte, dass liegt eventuell daran, dass er bei zu vielen Threads einfach ab und zu einem "verschluckt", aber ein Bekannter hat gesagt dass das das eigendlich nicht passiert. Habe sicherheitshalber ein Limit auf 20 Threads eingebaut, er hatte wohl recht. Habe absolut keine Ahnung was es sein könnte, bitte helft mir.
Hab die beiden Klassen auch hochgeladen, falls jemand sie im Editor braucht.
Leider findet er nichts. Irgendwo in der momentangen 2-Byte-großen Range muss sich der Server von heise.de befinden. Wenn ich einzeln Scanne passt alles. Nur wenn ich die ganze Range durchchecke findet er absolut nichts. Ich dachte, dass liegt eventuell daran, dass er bei zu vielen Threads einfach ab und zu einem "verschluckt", aber ein Bekannter hat gesagt dass das das eigendlich nicht passiert. Habe sicherheitshalber ein Limit auf 20 Threads eingebaut, er hatte wohl recht. Habe absolut keine Ahnung was es sein könnte, bitte helft mir.
Hab die beiden Klassen auch hochgeladen, falls jemand sie im Editor braucht.
Java:
package core;
public class Main
{
private final int port = 80;
private final int timeout = 60;
public Main()
{
final String ip = "193.99";
for(int c = 0; c < 255; c++)
{
for(int d = 0; d < 255; d++)
{
new Connect(ip + "." + c + "." + d, this.port, this.timeout);
try
{
Thread.sleep(1);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
System.out.println("Ende");
}
public static void main(String[] args)
{
new Main();
}
}
Java:
package core;
public class Connect extends Thread
{
private int port;
private int timeout;
private String ip;
private java.net.Socket socket;
public Connect(String ip, int port, int timeout)
{
this.ip = ip;
this.port = port;
this.timeout = timeout;
this.socket = new java.net.Socket();
}
public void run()
{
if(this.checkServerAlive())
System.out.println("Server " + ip + " ist auf Port " + port + " offen");
//else
//System.out.println("Server " + ip + " ist auf Port " + port + " nicht offen");
}
private boolean checkServerAlive()
{
try
{
this.socket.connect(new java.net.InetSocketAddress(this.ip, this.port), this.timeout);
return(true);
}
catch(java.io.IOException e){}
return(false);
}
}