Entwickler-Ecke

Internet / Netzwerk - Problem mit IP


o_O - Do 27.07.06 21:55
Titel: Problem mit IP
Hallu leute =)

Ich habe einen Server und einen Clienten geschrieben... so nun will ich das der Client über das internet sich mit dem Server verbindnet... nur klappt es nicht.. ich glaube es liegt an der IP .. ich hab die von meine Router genommen.. ist das falsch ? Welche muss ich nehmen ?


Coder - Do 27.07.06 22:05

Du musst die Internet IP nehmen.
Findest du da http://www.whatismyip.com
Denk auch daran das du ggf. in deinem Router die Ports freigeben musst.

MfG Coder


o_O - Do 27.07.06 22:08

Genau diese IP hab ich ja benutzt. aber es geht einfach nicht. Er connectet nicht. Gleiche Ports,beide Aktiv nur es geht einfach nicht..was kann das sein ?

Juhu leute ich habs =) thx trotzdem =)


mkinzler - Do 27.07.06 22:09

Hast du auch eine Weiterleitung der Ports vom Router auf deinen PC eingerichtet?


Coder - Do 27.07.06 22:13

Wie gings denn jetzt?
Was war der Fehler?


o_O - Fr 28.07.06 12:27

Hmm es geht doch noch nicht. Der Client connectet nicht !

Wie stell ich den den Clienten den ein ?
Port,Host,Adress usw. kann mir das jemand sagen ?

Und wie leite ich die Ports auf meinen PC um ? Ich hab ne Fritzbox


Born-to-Frag - Fr 28.07.06 13:17

Bei ner FritzBox ist das ganz einfach:

Du gehst in deine Router-Enstellungen ([url]Fritz.Box[/url]) dann gehst du zu den Internet-Einstellungen, dort dann zu der Portfreigabe, gibst dort den Port an den du bei deinen Programmen benutzt und deine interne IP (kannst du mit ipconfig herausfinden)


greetz


o_O - Fr 28.07.06 14:07

Und was ist wenn ich den HTTP also Port 110 verwende ?


Born-to-Frag - Fr 28.07.06 14:09

Ist HTTP nicht Port 80? Wenn er freigegeben ist dann kannst du ihn verwenden ;)


Timosch - Fr 28.07.06 14:18

POP=110
HTTP=80


Born-to-Frag - Fr 28.07.06 14:27

Standardmäsig sind aber beide nicht freigegeben bei der FirtzBox.. wer macht schon einen HTTP Server auf ;)


Narses - Fr 28.07.06 14:33

Moin!

Auch wenn das jetzt nicht konkret eine Hilfe ist, möchte ich es trotzdem nochmal erwähnen:

Die Ports von 1-1024 sind sog. "well-known"-Ports und für Systemdienste reserviert, deshalb sollte man in eigenen Anwendungen immer Portnummern oberhalb von 1024 verwenden! :mahn: Am besten 5-stellige. ;)

cu
Narses


alias5000 - Fr 28.07.06 14:37

...und dabei noch Ports, die unwahrscheinlich sind, dass es ein anderer wählt, also z.B. net 10000 oder 12345 oder sowas logisches.
Ich hab für mein Pogramm mal auf dem Tastenfeld rumgehauen und bin auf 8193 gekommen :wink:


o_O - Fr 28.07.06 14:40

aso ok ich werd mal schauen wies damit klappt =) thx


root_at_localhost - Fr 28.07.06 15:22

am besten macht man seine Portnummer frei konfigurierbar, dann is es auch egal, ob jemand anderes die auch verwendet. Ansonsten kann man noch in die services-Datei schauen ob es irgendeinen bekannten Dienst gibt, der den Port verwendet...


o_O - Fr 28.07.06 16:03

Man es verbindet einfach nicht =( wie ist das mit dem Localhost ?! Was muss da rein ? Localhost oder meine IP oder ??


mkinzler - Fr 28.07.06 16:05

Du brauchst eine Weiterleitung von der öffentlichen Adresse des Routers ( vom Provider zugewiesen) auf ide private IP-Adresse deines Rechners.


Coder - Fr 28.07.06 16:11

Wenn du den Server und den Client beide auf deinem Rechner laufen hast musst du bei Server "localhost" reinschreiben.


o_O - Fr 28.07.06 16:15

Ja aber der Client ist auf einem ganz anderen PC geht ja übers I-Net ... ich hab den Port schon weitergeleitet auf meinen PC aber es geht nicht


mkinzler - Fr 28.07.06 16:32

Welche Adresse ist dir nicht klar? Du mußt den Client mit der öffentlichen Adresse des Servers verbinden.


o_O - Fr 28.07.06 16:38

Ja ist das dann die von meinen PC ? Oder die vom Routor ? Ich hab die vom Routor drin


mkinzler - Fr 28.07.06 16:45

Das ist die vom Router, den dein Rechner hat ja eine private Adresse deines internen Netztes, welche nicht geroutet werden kann.


o_O - Fr 28.07.06 16:54

Das heisst also ich muss die von meinem PC eingeben ?


mkinzler - Fr 28.07.06 16:59

Nein, wie gesagt die öffentliche adresse vom Router


o_O - Fr 28.07.06 17:02

Ja die hab ich doch drin -_- hab ich doch gesagt. Ich hab auch gefragt was bei Host reinkommmt !!!


mkinzler - Fr 28.07.06 17:05

Die lokale (private) Adresse des Rechners.


Fighter#1 - Sa 29.07.06 10:47

Da ich das Problem auch habe frage ich auch mal,
Muss der Client Connect so aussehen?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
With ClientSocket1 do begin
   Address:='84.157.***.**';//Die Internet IP
   Host:='192.168.0.2';//Die Netzwerk IP
   Port:=2356;
   Active:=True;
end;


Hab am Router den Port freigeschaltet und an die Netzwerk IP (192.168. ...) weitergeleitet


Narses - So 30.07.06 23:52

Moin!

user profile iconFighter#1 hat folgendes geschrieben:
Da ich das Problem auch habe frage ich auch mal,
Muss der Client Connect so aussehen?

Nein, setze .Host auf den Hostnamen oder die IP des Routers und .Port, das reicht. Der Code oben ist "falsch", die Zuweisung an Host überschreibt den Inhalt von Adresss.

cu
Narses


Coder - Mo 31.07.06 01:05

So sieht die Portweiterleitung bei mir aus:
[url=http://img89.imageshack.us/my.php?image=portsjs4.gif]user defined image[/URL]


o_O - Mo 31.07.06 14:21

Hmm es geht immer noch nicht... hmm was ist da los =( kann das nichtmal jemand absolut richtig beschreiben ?


Narses - Mo 31.07.06 15:34

Moin!

:rofl:
user profile icono_O hat folgendes geschrieben:
kann das nichtmal jemand absolut richtig beschreiben ?

Das kann niemand absolut richtig beschreiben, weil niemand absolut alle PCs, Router und Software-/Systemeinstellungen dieser Welt kennt. Oder kennst du einen? ;)

Was hast du für einen Router und wie ist das Portforwarding [http://www.delphi-library.de/topic_Portforwarding++Eine+kleine+Einfuehrung_80904.html] eingestellt? Hast du dynamische Adressen in deinem LAN oder feste MAC/IP-Zuordnung? Hast du eine Firewall und den Port freigeschaltet?

cu
Narses


Steini1980 - Mo 31.07.06 17:46

vielleicht erstmal versuchen ob die verbindung zwischen server und client in einem lokalen netz funzt??

alternativ würd ich aufm server mal nen webserver oder so aufsetzen und versuchen ob du damit die portweiterleitung hinbekommst. kannst den webserver ja auch mal auf port 51448 oder so laufen lassen.

wenn das alles klappt muss der router ja richtig eingerichtet sein, wenns dann immer noch nich klappt weisst du wo der fehler liegt. is ne sache von 10 min.


Fighter#1 - Mo 31.07.06 20:47

Also im Netzwerk tut das Programm schon gut.
Der klient hat die richtige InternetIP und die ports sind freigeschaltet, hab mir auch ne feste LAN-IP besorgt, und an die wird immer weitergeleitet.
Protokoll auf TCP/UDP gestellt.
Das mit dem WEbserver probier ich jetzt mal.

Danke, Mfg Fighter#1


Fighter#1 - Mo 31.07.06 21:12

Also, beim Webserver dasselbe Problem.
Ich hab ihn auf einen Port 55514 gestellt, freigeschaltet und gestartet.
Kommt keine Verbindung zu Stande! Auch wenn ich die IP an die Weitergesendet wird anstatt 192.168.0.2 An die 192.168.0.100 weiterleite!
Langsam ärgerts mich...


o_O - Di 01.08.06 12:07

Local auf meine pc geht auch alles ... ich weiss echt nicht worans noch liegen könnte =( ich probiers mal mit dem Server...


Narses - Di 01.08.06 13:12

Anstatt sinnlos Serverdienste zu installieren, sollte man vielleicht mal die Punkte kontrollieren, die den Zugriff steuern...
user profile iconNarses hat folgendes geschrieben:
Was hast du für einen Router und wie ist das Forwarding eingestellt? Hast du dynamische Adressen in deinem LAN oder feste MAC/IP-Zuordnung? Hast du eine Firewall und den Port freigeschaltet?


Fighter#1 - Di 01.08.06 20:07

Also, ich will mal zusammenfassen:

user profile iconNarses hat folgendes geschrieben:
Hast du dynamische Adressen in deinem LAN oder feste MAC/IP-Zuordnung?
Hast du eine Firewall und den Port freigeschaltet?


user profile iconFighter#1 hat folgendes geschrieben:
Der klient hat die richtige InternetIP und die ports sind freigeschaltet, hab mir auch ne feste LAN-IP besorgt, und an die wird immer weitergeleitet.
Protokoll auf TCP/UDP gestellt.


Achso: Ich hab nen Netgear DG 834 GB mit neuester Firmware!


Narses - Di 01.08.06 20:37

Moin!

Wenn du eine Port-bezogene Anwendung hast, die im LAN funktioniert, aber über den Router nicht, dann stimmt das Portforwarding [http://www.delphi-library.de/topic_Portforwarding++Eine+kleine+Einfuehrung_80904.html] im Router nicht, garantiert. ;)

Gibt in den Router-OSen manchmal die Möglichkeit, den Port zu blocken (Firewall-Funktion) und unabhängig davon im LAN weiterzuleiten (Forwarding). Beides muss dann natürlich korrekt eingestellt sein.

user profile iconFighter#1 hat folgendes geschrieben:
Protokoll auf TCP/UDP gestellt.

Du brauchst nur TCP, wenn du nur TCP-Verbindungen aufbaust; UDP auf dem gleichen Port mitzunehmen, ist dann sinnlos.

cu
Narses


Fighter#1 - Di 01.08.06 21:08

user defined image


Narses - Di 01.08.06 22:27

Moin!

Kann auf der Seite keinen Fehler finden. Schau mal mit netstat -a, ob deine Anwendung tatsächlich auf dem Port lauscht und mit ipconfig /all, ob deine IP wirklich 192.168.0.2 ist.

Trotzdem: Wenn die Anwendung im LAN läuft, über den Router nicht, dann kann das IMHO nur an der Router-Config liegen.

cu
Narses


Fighter#1 - Mi 02.08.06 11:20

Also: Die IP stimmt, das mit dem Port muss ich nochmal schauen!
Ich seh bis jetzt nur den Lokalen Port (mit netstat -a) des Klienten, der Server
wird bei Netstat -a nicht angezeigt... weder der Port noch die Exe!

MfG Fighter#1


wdbee - Mi 02.08.06 11:45

Hallo Fighter#1,

kann es sein, dass du den Funktionstest im LAN und via Internet machst ohne die Anbindung des Test-Clients nach außerhalb zu verlegen?

Ich hatte mal ein ähnliches Problem. Der Router hängt am DSL. Bei Verbindungen über LAN alles ok, Zugriffe über externe Adresse nicht möglich. Wenn ich dann den Test-Client aber über ISDN bzw. Analogmodem einwählen ließ, klappte alles so wie geplant, denn dann ging die Verbindung über das Internet auf die DSL-Seite des Routers.

Wenn der Client und der Server auf der gleichen Seite im LAN hängen, wird der Test über LAN funktionieren, aber nur mit den internen Adressen. Wenn du dann nur die Adresse auf die Externe IP änderst, wird das Portforwarding nicht funktionieren, da die Anfrage des Clients von innen (aus dem LAN statt dem Inetrnet) kommt.