ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
609
609
EMPFEHLEN
-
Hallo ihr da draussen,
ich code gerade ein Portscanner aus Neugier.
In meinem Intranet funktioniert er sehr gut.
Das Problem ist wenn ich einen anderen scanne ins Internet rein
dauert das sehr sehr sehr lange.
Keine Angst ich scanne ein Freund der weis bescheid.
Nicht das Ihr mich jetzt hier zur Schnecke macht.
Es gibt 65535 Ports die ich gerne durchscannen würde.
Habe da verschiedene varianten getestet.
Hier erstmal mein code :
1.Variante
dauert im Intranet ca. 14,5 sec
im Internet unendlich
2.VariantePHP-Code:$ip = "192.168.0.2";
for($i=1; $i <= 65535; $i++) {
$port = array($i);
for ($k=0; $k<count($port); $k++) {
$ports = $port[$k];
$giu = fsockopen($ip, $ports, &$errno, &$errstr, 1);
if(!$giu) {
//echo "Port ", $ports, " geschlossen<br>\n";
} else {
echo "Port ", $ports, " offen<br>\n";
fclose($giu);
} //if !$giu
} //for schleife $k
} //for schleife $i
Die leider nicht funktioniert.
Über ein 2 Dimensionales array()
3. Variante die leider auch bei mir nicht funktioniertPHP-Code:$ip = "192.168.0.2";
// Das array ist aus platzgründen gekürzt
$port = array(
"0" => array(1,2,3,4,....,1024),
"1" => array(1025,....,2048),
"2" => array(2049,....,3072),
....
....
"63" => array(64511,....,65535));
for ($k=0; $k<count($port); $k++) {
$ports = $port[$k];
$giu = fsockopen($ip, $ports, &$errno, &$errstr, 1);
if(!$giu) {
//echo "Port ", $ports, " geschlossen<br>\n";
} else {
echo "Port ", $ports, " offen<br>\n";
fclose($giu);
} //if !$giu
} //for schleife $k
Über ein einfaches array
Könnte mir jemand da weiter helfen?PHP-Code:$ip = "192.168.0.2";
// Das array ist aus platzgründen gekürzt
$port = array(0,1,2,3,4,....,65535),
for ($k=0; $k<count($port); $k++) {
$ports = $port[$k];
$giu = fsockopen($ip, $ports, &$errno, &$errstr, 1);
if(!$giu) {
//echo "Port ", $ports, " geschlossen<br>\n";
} else {
echo "Port ", $ports, " offen<br>\n";
fclose($giu);
} //if !$giu
} //for schleife $k
Besteht die Möglichkeit die 1. Variante etwas zu tunen, also zu optimieren ?
Warum funktioniert es nicht mit 2. und 3. Variante ?
Schafft das array nicht soviele Zahlen aufzunehmen ?
Als Bonus würde ich gerne wissen gibt es in PHP eine Möglichkeit herauszufinden welcher Dienst hinter dem Port steckt ?
Um dann so eine Ausgabe zu machen :
Port 80 offen http / Webserver
Vielen Dank
euer SaTaN-- Erfahrung braucht man fürs Leben --
Weltweite Studie
http://extreme-abuse-survey.net
http://d-tommasi.de
-
Lösung überleg ich mir noch.. *g*
aber ist dir klar warum es im Intranet so gut Funktioniert ?
wenn du alle Ports durchscannen willst brauchste locker für die 2te variante min ne Stunde.
Warum?
du machst Verbindungen auf und zwar genau 65536
So nun zum eigentlichen Punkt. Du hast keine 100 MBIT Leitung die die so schnell soviele Verbindungen zu den Servern aufstellen kann.
Anfrage - Antwort;
im Intranet ist es klar dort brauchst du nicht ewig bis du ne Antwort bekommst.
In Php kannste ausserdem keinen richtigen Timeout handeln und ausserdem hast du keine Prozesse sonder nur einen Prozess.
Du machst Schleifen
Also frägst du den Server an.
Er wartet sagen wir 4 Sekunden und genau sollange wartet dein Script bei diesem Server.
Also hast du genau 65536 einzelne Serveranfragen die er nacheinander abarbeitet.
Hättest du Java,C/C++ genommen könntest du Treaths benutzen dann könntest du ob wohl noch eine Abfrage stattfindet weitere Anfragen stellen ohne das es dein Programm beinflussen würde...
Scanner über Php kannste vergessen
ausser du hast halt die Lust zu warten gg
Ich hoffe ich hab dich nun zum überlegen angeregt, ob du den auch wirklich schreiben willst :OGeändert von SonicBe@m (16.09.03 um 12:25 Uhr)
Moep :)
-
Hallo SonicBe@m,
vielen Dank für deine rasche Antwort.
Ja das mit dem Internet wo du das gerade sagst ist mir das klar.
Für eine Lösung zur Optimierung wäre ich dir da auch sehr dankbar.
Ich hoffe du meinst das ernst.
Na ja die Erklärung von dir dazu ist sehr verständlich.
Nur würde ich das gerne weiter machen da ich schon viel Zeit investiert habe.
Das Thema finde ich auch dazu sehr interessant.
Zur Not muss man halt stundenlang warten.
Vielen Dank für Hilfe
euer SaTaN-- Erfahrung braucht man fürs Leben --
Weltweite Studie
http://extreme-abuse-survey.net
http://d-tommasi.de
-
Also ich hab mal in Google geschaut und wurde fündig!

evt hilft dir das ja weiter..
http://px.sklar.com/code.html?id=391Moep :)
-
Hey SonicBe@m,
GOOGLE IST AUCH MEIN BESTER FREUND
Das Script kenne ich.
Damit habe ich mich schon gestern angefreundet und ich bekamm immer fehlers.
Kann mit denn nichts anfangen.
Fatal error: Cannot use [] for reading in
Vielleicht kannst du mir was dazu sagen.
Vielen DankPHP-Code://gleich nach MAIN
$CONN_PORT[];
$OPEN_PORTS[];
// gleich zu anfang in der Definition
$PORTSNUMBER[];
$PORTSDESCRIPTION[];
euer SaTaN-- Erfahrung braucht man fürs Leben --
Weltweite Studie
http://extreme-abuse-survey.net
http://d-tommasi.de
-
was auch immer
dann deklariere Sie richtig
PHP-Code://gleich nach MAIN
$CONN_PORT = array();
$OPEN_PORTS = array();
// gleich zu anfang in der Definition
$PORTSNUMBER = array();
$PORTSDESCRIPTION = array();
Moep :)
-
16.09.03 19:28 #7
- Registriert seit
- Dec 2001
- Ort
- Hannover
- Beiträge
- 4.234
Vorschlag zur Güte:
Mit eigenem Server auf z. B. Linux kannst Du einen Portscanner nehmen und das Ergebnis von PHP übernehmen lassen.
Das heißt im konkreten Fall das Programm arbeitet bestenfalls mit üblichen multiplen Threads unter Linux und scannt wesentlich schneller, da simultan mehrere Ports abgefragt werden.
Bei allen Ports kann das je nach Leitung immer noch ein paar minuten dauern, weshalb PHP dann dementsprechend ein höheres script-timeout bräuchte.
Greetz,
Neuro
Copy for free - Yet another page for free software with soures:- BitUnlocker (Automatic unlock multiple Bitlocker secured drives - if you use the same password)
- W7 ScrollZoom (Use Windows 7 zoom tool through your mouse wheel)
- AppStarter (Somewhat like PortableApps launcher)
- QuakeConsole (Show/Hide windows console with your tilde key)
- BetterFileRenamer (Simple file renamer that adds date and version)
-
Hallo Neuro

Hmm, soll ich das jetzt so verstehen das ich den Portscanner der unter Linux läuft
unter PHP starten kann und das Ergebnis auswerten könnte in PHP ?
Unter Linux starte ich den Portscanner so :
nmap -sS -p80 -O <host, oder ip>
Wenn ich das so richtig verstanden habe könntest du mir irgendwie ein
ansatz Posten, oder du meldest dich bitte bei mir über ICQ.
Dann schnacken wir eine Runde
Vielen Dank
euer SaTaN-- Erfahrung braucht man fürs Leben --
Weltweite Studie
http://extreme-abuse-survey.net
http://d-tommasi.de
-
16.09.03 23:36 #9
- Registriert seit
- Dec 2001
- Ort
- Hannover
- Beiträge
- 4.234
Auch hier bietet uns PHP eine schöne Funktion
http://de3.php.net/manual/de/function.passthru.phpCopy for free - Yet another page for free software with soures:- BitUnlocker (Automatic unlock multiple Bitlocker secured drives - if you use the same password)
- W7 ScrollZoom (Use Windows 7 zoom tool through your mouse wheel)
- AppStarter (Somewhat like PortableApps launcher)
- QuakeConsole (Show/Hide windows console with your tilde key)
- BetterFileRenamer (Simple file renamer that adds date and version)
Ähnliche Themen
-
C++ - Portscanner
Von paul10 im Forum C/C++Antworten: 9Letzter Beitrag: 02.05.09, 11:20 -
Kleines Problemchen mit dem Array
Von igfas im Forum PHPAntworten: 5Letzter Beitrag: 13.07.06, 09:22 -
Portscanner
Von Cypher_ab im Forum C/C++Antworten: 4Letzter Beitrag: 27.02.04, 10:02 -
checkboxen array problemchen
Von slapper im Forum PHPAntworten: 3Letzter Beitrag: 19.12.03, 09:10 -
portscanner in php
Von EMinus im Forum PHPAntworten: 2Letzter Beitrag: 21.10.02, 16:27





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren