Eigener TCP-Scanner

Hi,

Ich hab meinen eigenen TCP-Portscanner geschrieben zum Testen im LAN. Der TCP-connect()-Scan ist jedoch sehr langsam. Für jeden Port braucht es 1 Sekunde. Ist es normal das es so langsam ist? Wie kann ich es schneller machen? (Hyperthreading?)? Kann mich da einer bitte aufklären?

gruß
 
das Experiement habe ich auch schon mal gemacht.
War bei mir genauso das es recht lange gedauert hat.
würde mich auch interessieren.
 
Multithreading ist sicherlich keine schlechte Idee.
Der Timeout sollte einstellbar sein.
Aber versuchs vor allem vlt. mal damit (z.b. duckduckgo liefert Fortführendes):TCP_SYN_Scan.

[Halbwissen]Des weiteren hatten alte windowse ne recht geringe Anzahl gleichzeitig Sockets. Konnte man allerdings iwo umstellen und ich habe keine Ahnung wie das bei den neuen Versionen ist.[/Halbwissen]
 
AW

Das es mit dem SYN-Scan schneller geht ist klar, aber ich verstehe nicht, aus welchem Grund nmap für den gleichen Scan nur 5 Sekunden und mein TCP-connect()-Scan 23-Sekunden braucht. Welche Technik nutzt nmap dafür?

lg
 
Habe ein Haus gebaut. Aber es stürzt immer ein. Warum? Was mache ich falsch?

Nmap ist übrigens Open-Source.
 
Haut nicht hin

Hi,

Folgendes hab ich versucht, doch Timeout liegt immer noch bei einer Sekunde:
int timeout = 500; // 500 Millisekunden

sock1 = socket(AF_INET, SOCK_STREAM, 0);

setsockopt(sock1, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
setsockopt(sock1, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout,
sizeof(timeout));

Könnt ihr mir weiterhelfen?
 
Hi,

Folgendes hab ich versucht, doch Timeout liegt immer noch bei einer Sekunde:
int timeout = 500; // 500 Millisekunden

sock1 = socket(AF_INET, SOCK_STREAM, 0);

setsockopt(sock1, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
setsockopt(sock1, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout,
sizeof(timeout));

Könnt ihr mir weiterhelfen?
Ja hast du das Threading jetzt schon implementiert oder nicht?
30 Threads die 30 ports scannen mit gleichem timeout bedeutet 30 mal schneller scannen ne?
 
Wenn dein Compiler das unterstützt, ist das der einfachste Weg, ja. Allerdings sollte man num threads vorher hochsetzen.

omp_set_num_threads(n);
 
Zurück
Oben