HTTP-Scan findet nichts

Kai008

Erfahrenes Mitglied
Das ganze ist ATM noch ein HTTP-Scanner. Ich habe ihm vor allem zum lernen geschrieben, sein entgültiges Anwendungsgebiet ist aber geheim. :o
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);
	}	
}
 

Anhänge

Hi,

ich frage mich gerade, wie Deine Threads loslaufen sollen, wenn sie nicht gestartet werden.
Probiers mal so:

Java:
new Connect(ip + "." + c + "." + d, port, timeout).start();

Gruß
joschi
 
Hallo,

ich möchte dich bitten, nächstes mal doch einen etwas treffenderen Titel zu wählen. So kann dieses Thema vielleicht auch anderen Usern helfen.

MFG

Sascha
 
Danke, aber daran lag es nicht. Das war ein Fehler jetzt wieder beim umschreiben.
Als ich es mit begrenten Threads versucht hatte habe ich auf eine Liste gesetzt, wo ich einfach per Size prüfen konnte wie viele rennen. Und da musste ich die start() in eine extra Zeile schreiben, da man ja keine Voids hinzufügen kann. Diese ist mir jetzt irgendwie flöten gegangen.

@Sascha: Sorry.
 
Hi,

dann weiss ichs leider auch nicht.
Vielleicht bekommst Du Probleme mit irgendwelchen Thread oder Connection Limits.
Aber wie gesagt ... keine Ahnung. :(

Gruß
joschi
 
Zurück