Autor Beitrag
Robii
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Di 11.08.09 17:10 
Hallo,
ich hab eine Frage bzzgl. eines PortCheckers.

Wenn ich selbst einen PortChecker programmieren möchte, der prüft ob der Port, der gechecked wird offen oder geschlossen ist,
dann muss ich doch versuchen mit einem SocketServer eine Verbindung zu Port XY der Ip-Adresse AB herzustellen oder nicht?

Jetzt meine Frage, mal angenommen der Port ist offen und ich komme mit dem SocketServer durch die Firewall, dann fehlt mir doch ein Programm, also ein SocketClient, das meine Anfrage annimmt und mir meldet, das der Port offen ist oder wie mache ich das sonst?

Ist natürlich auch möglich dass das auf nem ganz anderen Prinzip läuft & ich hier totalen Schmarn schreibe. ;)

Grüße,
robii

Moderiert von user profile iconNarses: Titel geändert.
Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am Mi 12.08.2009 um 12:05 - Ich sehe in diesem Thread keinen Bezug zu einem Delphi-Programm; sollte dieser noch auftauchen, wird der Thread ggfs. wieder verschoben.
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Di 11.08.09 17:38 
Mit einem Server stellt man i.d.R. keine Verbindung her. Wieso versuchst du nicht einfach, mit einem Client auf dem entsprechenden Port zu connecten?

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Di 11.08.09 17:44 
Danke für den Schubs. Ich versuche es mal und schreib noch mal wenn sich was ändert. Danke + Grüße

E.: Stellt sich nur die Frage, wenn der Client durchkommt, d.h. keine Firewall die Verbindung verhindert,
gibt der Client dann einen anderen FehlerCode aus als wenn die Firewall die Verbindung verhindert ? Weil dann
könnte man die FehlerCodes ja deuten, 1 für FireWall im Weg und 2 für kein Server oder so ähnlich?

Grüße

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Habe jetzt einen Client der wenn ich ihm eine IpAdresse und die Ports die er checken soll gebe, versucht sich bei dieser IpAdresse mit jedem Port nacheinander anzumelden. Das funktioniert natürlich nicht, weil ich ja keinen Server laufen habe auf den jeweiligen Ports. Jeztt ist die Frage, wie erkenne ich, das der Client keinen Server findet und nicht wie er bei manchen Ports an der FireWall scheittert? Gibt es da unterschiedliche Fehlercodes? Soweit ich weiß (GOOGLE) heißtd er FehlerCode 10060 das er an der Firewall scheitert, was aber eigentlich nicht seien kann, da ich ihn 2 Ports bei mir checken lasse, die offen sind. Gibt es evtl. eine Tabelle wo man alle Fehlercodes ansehen kann?

Grüße & danke für die Hilfe schonmal.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 10:28 
Fällt keinem ein Tip / Antwort ein ? :0
Grüße
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 10:35 
Nein.
Du kannst nicht unterscheiden zwischen "da ist eine Firewall" oder "da ist kein Server". Wär ja noch schöner.. am besten soll die Fehlermeldung noch angeben, welche Firewall verwendet wird, mit welchen Sicherheitslücken, oder was?
Die Firewall verhindert einfach nur, dass der Port erreicht werden kann. Und wenn man ohne Firewall unterwegs ist, aber auch keinen Server aktiv hat, kann der Port ebenfalls nicht erreicht werden.

Übrigens:
Pushen erst nach 24 Stunden erlaubt..

_________________
PROGRAMMER: A device for converting coffee into software.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 10:39 
Zitat:

Nein.
Du kannst nicht unterscheiden zwischen "da ist eine Firewall" oder "da ist kein Server". Wär ja noch schöner.. am besten soll die Fehlermeldung noch angeben, welche Firewall verwendet wird, mit welchen Sicherheitslücken, oder was?
Die Firewall verhindert einfach nur, dass der Port erreicht werden kann. Und wenn man ohne Firewall unterwegs ist, aber auch keinen Server aktiv hat, kann der Port ebenfalls nicht erreicht werden.


Stimmt, jetzt wo du es sagst klingt es ziemlich logisch. Hast du den vielleicht eine andere Idee was man sonst machen könnte,
um das festzustellen ? Ich google grade mal nach der Funktionsweise eines Portcheckers, evtl. hilft mir das ja weiter.

Ps.: Der Push war aus der Verzweifelung herraus :P

Grüße.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 10:46 
Und wenn dein Leben davon abhängt - die Regeln sagen, dass du erst nach 24 Stunden pushen darfst :P

Die PortChecker, die ich kenne, zeigen auch nur an "Port offen" oder "Port geschlossen".. warum und wieso der geschlossen ist, können diese auch nicht anzeigen.
Deswegen versteh ich noch nicht ganz, was du willst?

_________________
PROGRAMMER: A device for converting coffee into software.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 13:06 
Also, ich wollte halt einen PortChecker programmieren, bei dem man eine Ip-Adresse angibt und der Portchecker dann alle Ports, die man angegeben hat, z.B. 3456-7890 überprüft & nachher eine Tabelle als Ergebniss liefert, in der steht welcher Port offen und welcher geschlossen ist.

Grüße.

Ps.: Ich push nie wieder xP
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 13:16 
Ja, dann mach das doch ;)
Wo genau scheiterts denn nun? Einfach z.B. mit nem TCPClient eine Verbindung herstellen (Connect), und wenn das nicht geht (Exception / Timeout), ist der Port nicht erreichbar.

_________________
PROGRAMMER: A device for converting coffee into software.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 12.08.09 13:31 

_________________
There are 10 types of people - those who understand binary and those who don´t.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 13:38 
Ich mache das ja im Prinzip ;) Ich versuche mit meinem ClientSocket eine Vebrindung mit der IpAdresse XY und dem Port i herzustellen. Dies klappt aber doch so oder so nicht, weil ja auf der anderen Seite kein ServerSocket ist, das die Verbindung annimmt oder nicht?

Grüße.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 14:12 
ja richtig, und weiter?

Deswegen sagte ich ja, dass es dann entweder zu einem Timeout, oder einer Exception kommen sollte.
Ich weiß allerdings nicht genau, wie sich der einfache ClientSocket dann verhält - ich selber benutz nur die Indy Komponenten

_________________
PROGRAMMER: A device for converting coffee into software.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 14:30 
& Wie kann ich jetzt feststellen oder der Port mit einer FireWall geschützt ist oder nicht? So doch gar nicht oder? Wie funktionieren den andere PortScanner ?
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 14:34 
Wir drehen uns im Kreis..
Zeig mir EIN Programm, dass einen Unterschied macht, zwischen "Firewall" oder "Port nicht geöffnet"

Bis dahin behaupte ich weiter, dass das nicht geht.

_________________
PROGRAMMER: A device for converting coffee into software.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 15:17 
Wir drehen uns im Kreis weil ich nicht sage was ich meine. Ich meine woran erkennt das Programm, das der Port offen ist, wenn aber kein Server oder etwas Anderes hinter dem Port wartet und die versuchte Verbindung vom Client entgegen nimmt? :)
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 15:20 
Daran ,dass nach einer gewissen Zeit niemand die Verbindung entgegen nimmt, auch Timeout genannt.

Lass doch einfach mal den Code sprechen, vielleicht hilft das weiter ;)

_________________
PROGRAMMER: A device for converting coffee into software.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 12.08.09 15:24 
Moin!

user profile iconRobii hat folgendes geschrieben Zum zitierten Posting springen:
Ich meine woran erkennt das Programm, das der Port offen ist, wenn aber kein Server oder etwas Anderes hinter dem Port wartet und die versuchte Verbindung vom Client entgegen nimmt?
Was ist denn deiner Meinung nach ein "offener Port"? :nixweiss:

Vielleicht solltest du mal genauer beschreiben, was der Zweck deiner Übung hier werden soll. Alternativ könntest du dich auch erstmal mit den Grundlagen von IP-Protokollen auseinandersetzen und vielleicht auch mal was mit Suche bei Google NMAP ausprobieren, dann klären sich deine Fragen vermutlich ganz schnell von selbst. :idea: Aber warum selbst mal recherchieren, man kann ja auch hier 5x die gleiche Frage stellen... :autsch:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Robii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236



BeitragVerfasst: Mi 12.08.09 15:31 
Hallo,

Zitat:
Daran ,dass nach einer gewissen Zeit niemand die Verbindung entgegen nimmt, auch Timeout genannt.


Danke, genau das wollte ich wissen. Das heißt ja, das der ClientSocket 2 verschiedene FehlerCodes zurück gibt,
und zwar entweder XY, das der Port geschlossen ist, oder hinter einer Firewall ist, oder Code AB, der bedeutet,
das es ein TimeOut gibt, weil keiner die Verbindung annimmt.

Zitat:
Was ist denn deiner Meinung nach ein "offener Port"? :nixweiss:


Ein offener Port ist für mich ein Port, der von der FireWall ignoriert wird, also wo raus & rein gehen kann, was
auch immer auf diesen Port zugreift. Diese Einstellungen kann man ja im Router vornehmen, wie man sie oft auch für
Online-Computerspiele braucht.

Zitat:
Vielleicht solltest du mal genauer beschreiben, was der Zweck deiner Übung hier werden soll.


Der 'Zweck' der Übung ist, das ich gerne meine eigenen PortScanner entwickeln möchte, der eine Ip-Adresse auf
offene Ports prüft und diese dann auflistet, weil ich gerne verstehen wollte wie solch ein Programm funktioniert
und nicht immer eine Standart Variante aus dem Internet holen wollte.

cu
robii :)
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 12.08.09 15:47 
:autsch:

Letzter Versuch von mir..
Vom Client aus gesehen gibt es zwei Möglichkeiten:
1. Du erreichst einen Endpunkt (Server)
2. Du erreichst KEINEN Endpunkt

WARUM du keinen Endpunkt erreichst, kann man nicht sagen (von solchen Dingen wie "No route to host" mal abgesehen). ob da nun eine Firewall vor sitzt, der Router dich nicht durchlässt, oder einfach keine Serveranwendung auf diesem Port lauscht ist, von Clientseite aus nicht zu unterscheiden.

Lies dir mal durch, wie TCP / IP, bzw. auch eine Firewall überhaupt funktionieren.


Edit:
Ich merke gerade, ich hab deinen vorletzten Post etwas zu sehr überflogen, sorry.
Einen "offenen" Port, wo aber kein Programm lauscht, gibt es nicht. Entweder es horcht ein Programm, oder der Port ist zu (Firewall blockiert / kein Programm hat den Port geöffnet)

_________________
PROGRAMMER: A device for converting coffee into software.
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Mi 12.08.09 16:32 
user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Wir drehen uns im Kreis..
Zeig mir EIN Programm, dass einen Unterschied macht, zwischen "Firewall" oder "Port nicht geöffnet"

Bis dahin behaupte ich weiter, dass das nicht geht.

Ist eine Firewall konfiguration auch okay? (iptables)

DROP: verwirft das Paket
REJECT: wie DROP nur dass hier eine Antwort an den Sender gesendet wird, dass das Paket verworfen wird.