Seite 1 von 1

IP feststellen bei Zugang über Router

Verfasst: Sonntag 4. Mai 2008, 16:08
von Roman
Hallo,
Ich versuche mich im Moment an einem Chat-Server, der dem MSN-Messenger von Microsoft nicht ganz unähnlich ist. (Nicht, weil ich denke, ich könnte es besser machen, sondern um ein wenig mehr über Netzwerkprogrammierung zu erfahren :) )

Ich wollte auch Dateien zwischen den Clients übertragen können. Bei MSN weiß ich, dass dies über eine direkte Verbindung der beiden Clients funktioniert. (So eine Art P2P)
Mein Problem sind jetzt die IPs, denn in einem LAN ist das noch relativ einfach, diese rauszufinden.
Bei einem Client, der über einen Router ins Netz geht, ist das dagegen sehr viel schwerer...
Wenn ich die IP des Clients hole, bekomme ich ja nur die "lokale" IP im LAN und nicht die des Routers von außerhalb.
Gibt es eine Möglichkeit, diese IP rauszufinden ?

EDIT: Ich nutze WinXP und brauche das Ganze nicht plattformunabhängig.

Für alle Antworten wäre ich sehr dankbar,
Bis dann,
Roman

Verfasst: Sonntag 4. Mai 2008, 23:10
von Trundle
Man könnte http://checkip.dyndns.org/ oder so aufrufen und die Antwort auslesen.

Verfasst: Montag 5. Mai 2008, 09:27
von Leonidas
Man könnte aber auch seine aktuelle IP von der Gegensetelle anfordern.

Verfasst: Montag 5. Mai 2008, 11:46
von Sr4l
Leonidas hat geschrieben:Man könnte aber auch seine aktuelle IP von der Gegensetelle anfordern.
Und woher soll die Gegenstelle seine eigene IP kennen? ;-)

Ich finde einen (eigenen) Server am Besten, den kann man nach der IP Fragen, und der kann bei Clienten, die wegen Firewall keine direkte Verbindung hin bekommen, miteinander verbinden.

Verfasst: Montag 5. Mai 2008, 12:27
von jens
Man könnte auch ein traceroute/tracepath machen...

Oder man fragt die IP direkt vom router ab. Die haben ja meist eine http Status Seite auf der die IP steht.

Wenn man selber WebSpace hat, könnte man da ein mini Skript plazieren, welches die IP anzeigt:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, cgitb
cgitb.enable()

print "Content-Type: text/html;charset=utf-8\n"
print os.environ["REMOTE_ADDR"]
Es würde aber auch mit einem einfachem SSI gehen:

Code: Alles auswählen

<!--#echo var="REMOTE_ADDR" -->
Ob Skript oder SSI, es könnte ein proxy zwischenfummeln ;)

Verfasst: Montag 5. Mai 2008, 15:10
von Leonidas
Sr4l hat geschrieben:
Leonidas hat geschrieben:Man könnte aber auch seine aktuelle IP von der Gegensetelle anfordern.
Und woher soll die Gegenstelle seine eigene IP kennen? ;-)
Die Idee ist die folgende: User kommunizieren normalerweise über den Server (ist bei Jabber so, ist bei IRC so) und dieser Server kennt die IPs der User. Um nun eine direkte Verbindung zu ermöglichen (etwa wie DCC im Fall von IRC), fragt man beim Server seine eigene IP ab und schon hat man die.

Verfasst: Montag 5. Mai 2008, 19:28
von Sr4l
Leonidas hat geschrieben:
Sr4l hat geschrieben:
Leonidas hat geschrieben:Man könnte aber auch seine aktuelle IP von der Gegensetelle anfordern.
Und woher soll die Gegenstelle seine eigene IP kennen? ;-)
Die Idee ist die folgende: User kommunizieren normalerweise über den Server (ist bei Jabber so, ist bei IRC so) und dieser Server kennt die IPs der User. Um nun eine direkte Verbindung zu ermöglichen (etwa wie DCC im Fall von IRC), fragt man beim Server seine eigene IP ab und schon hat man die.
War mir klar, ich konnte mir nur nicht verkneifen. In Zukunft schreibe ich (bitte nicht antworten) dahinter ;-)

Verfasst: Dienstag 6. Mai 2008, 15:48
von Roman
Danke für die vielen Antworten... :D
Leider wollte ich eigentlich kein eigenes Skript auf den Server packen, da das im Moment über FTP und die Domain meiner Eltern funktioniert :D, und die wahrscheinlich lieber keine Experimente auf ihrem Server wollen...
Ist FTP da eigentlich schnell genug, wenn ein etwas größerer Traffic durchgeht, oder ist das mit den ganzen Dateien dann zu viel?
Sonst müsste ich mit tatsächlich noch was anderes überlegen...

EDIT: Oh, irgendwie hatte ich Trundles Antwort völlig übersehen... :roll:
Danke, so werd ich das mal probieren! Hab nämlich grad festgestellt, dass ich meine FritzBox Seite nicht so einfach auslesen kann, weil die Java und XML benutzt.

Die Idee mit der Site des Routers ist natürlich auch eine Möglichkeit, allerdings wird das wohl nicht ganz leicht, die Seite so zu parsen, dass immer die IP richtig rauskommt.

Morgen oder Übermorgen werd ich mich da mal ransetzen, Ergebnisse schreib ich dann hier...

Bis dann,
Roman

Verfasst: Dienstag 6. Mai 2008, 16:47
von Leonidas
Roman hat geschrieben:Ist FTP da eigentlich schnell genug, wenn ein etwas größerer Traffic durchgeht, oder ist das mit den ganzen Dateien dann zu viel?
:?:
Was willst du denn machen?
  • Den Chat über FTP laufen lassen? Das kannst du vergessen, FTP ist dafür nicht gedacht. Ich würde sogar sagen, FTP ist für gar nichts gut, denn sogar für Datenübertragung ist SFTP besser.
  • Die IP über einen FTP-Server herausfinden? Das kannst du auch vergessen, denn der FTP-Server wird dir nicht deine IP sagen.

Verfasst: Sonntag 25. Mai 2008, 21:41
von Roman
Hallo,
Entschuldigt die Verzögerung. Ich war die letzte Zeit nicht zu hause und konnte daher nicht antworten...

Eigentlich hatte ich vor, den Chat über FTP laufen zu lassen, aber es sieht so aus, als müsste ich hierfür wohl ein anderes Protokoll nehmen. :(
Also doch am Server der Eltern rumspielen :D

Danke für eure Antworten und die schnelle Hilfe,
Roman