Portscanner
-
Hallöchen,
da ich neu bin und eventuell in das falsche Forum gepostet habe bitte ich dies zu entschuldigen.Nun zum Thema.
Also ich habe mir vorkurzem nen kleinen Portscanner geschrieben, bei der eine vorgeschriebene IP Adresse lediglich gescannt werden kann. Nun meine Frage, könnte mir jemand erklären wie das geht, wenn ich will das man unterschiedliche IP Adressen scannen kann? Eventuell kennt von euch auch einer ein gutes Tut welches näher auf das Thema eingeht.
Ich würde mich auch sehr über einen Beispiel Code freuen.Ich versuche mein Problem nun schon eine halbe Ewigkeit zu lösen.
Ausserdem möchte ich vermerken das ich auf Hilfe wie "such mal bei google" verzichten kann, da ich dies schon getan habe.
Ich denke das ihr mir helfen könnt.Schüß euer Autonomer
-
Einfach in einer Schleife die IP-Adressen durchgehen

-
Erst einmal danke schön.
Aber muss die Schleife nicht ein Ende haben?
Wie kann man das ganze den darstellen?
-
Die Schleife ist eben dann zu Ende, wenn der zu scannende IP-Bereich fertig gescannt wurde
Eigentlich musst du ja immer nur die einzelnen Gruppen von 0 bis 254 durchzählen 
-
@Autonomer, willst du eine bestimmte Anzahl von festgelegte IPs scannen? Oder willst du einen Adressenbereich durchsuchen. Bei der Eingabe z.B 192.168.1.0 müsstest du nur eine Schleife von 192.168.1.1 bis 192.168.1.254 laufen lassen. Wenn du bereits einen Scanner hast sollte das eigendlich nicht so schwer umzusetzen sein.
EDIT: @flenders, mist zu langsam

-
Also heisst das das ich die Schleife von 0 bis 254 laufen lassen muss?
Wie mach ich das mit den anderen Bereichen, schließlich besteht eine IP Adresse nicht nur aus einem Block sondern aus vier.
-
@Herrmann
Eigentlich möchte ich nach belieben scannen können sprich mal nach
80.xxx.xxx.xxx od. auch nach 213.xxx.xxx.xxx
-
Du kannst einfach für jeden Block eine Schleife machen und diese dann ineinander schachteln. Oder eben nur eine einzige Schleife, denn eigentlich ist das mit den 4 Blöcken ja nur eine besondere Art der Darstellung

-
Wie würde ich es den darstellen müssen wenn ich alle Blöcke in einer Schleife darstellen will? Ich kann mir darunter nicht wirklich viel vorstellen.
cu
-
Du liest 2 IPs ein, von-IP-Adresse und bis-IP-Adresse.
Dann machst Du 4 Schleifen. Je Schleife hast Du dann einen Anfangs- und Endwert durch die angegebene Start- und Endadresse.Erste Schleife geht also vom ersten oktet der Start-IP bis zum ersten oktet der End-IP usw.
Die 4 Schleifen sind ineinander verschachtelt!
-
Hm, könntest du mir bitte mal anhand eines Beispiels das ganze zeigen?
-
na so in der art
for (int i1=1; i1<255; i1++) { for (int i2=1; i2<255;i2++) { for (int i3=1; i3<255;i3++) { for (int i4=1; i4<255;i4++) { scandiekrasseip(i1,i2,i3,i4); }}}}
-
Im Prinzip ist ja eine normale IP-Adresse nichts anderes als eine 32-bit Zahl, die eben in 4 Gruppen zu je 8 Bit unterteilt wird, damit man besser damit umgehen kann.
Beispiel: 80 . 27 . 33 . 169 01010000 00011011 00100001 10101001Wobei man dann wohl noch die Broadcast-Adressen (255) rausfiltern müsste - habe damit aber noch nie etwas gemacht. Ansonsten ist die Variante mit den 4 if-Schleifen sicher eh wesentlich übersichtlicher

-
Suppi, danke schön.
-
Autonomer schrieb:
@Herrmann
Eigentlich möchte ich nach belieben scannen können sprich mal nach
80.xxx.xxx.xxx od. auch nach 213.xxx.xxx.xxxausserdem solltest du multithreading einsetzen d.h. viele threads, die parallel scannen. sonst kann das seeeeeeehhhhrrrr lange dauern
