| Autor |
Beitrag |
Robii
      
Beiträge: 236
|
Verfasst: 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 Narses: Titel geändert.
Moderiert von Narses: 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
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: 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 
      
Beiträge: 236
|
Verfasst: 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 Narses: 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 
      
Beiträge: 236
|
Verfasst: Mi 12.08.09 10:28
Fällt keinem ein Tip / Antwort ein ? :0
Grüße
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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 
      
Beiträge: 236
|
Verfasst: 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
Grüße.
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mi 12.08.09 10:46
Und wenn dein Leben davon abhängt - die Regeln sagen, dass du erst nach 24 Stunden pushen darfst
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 
      
Beiträge: 236
|
Verfasst: 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
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 12.08.09 13:31
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Robii 
      
Beiträge: 236
|
Verfasst: 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
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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 
      
Beiträge: 236
|
Verfasst: 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
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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 
      
Beiträge: 236
|
Verfasst: 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
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 12.08.09 15:24
Moin!
Robii hat folgendes geschrieben : | | 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"?
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 NMAP ausprobieren, dann klären sich deine Fragen vermutlich ganz schnell von selbst.  Aber warum selbst mal recherchieren, man kann ja auch hier 5x die gleiche Frage stellen...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Robii 
      
Beiträge: 236
|
Verfasst: 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"? |
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
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mi 12.08.09 15:47
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
      
Beiträge: 339
Erhaltene Danke: 20
Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
|
Verfasst: Mi 12.08.09 16:32
Xentar hat folgendes geschrieben : | 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.
|
|
|