IP herausfinden, mit der ich im Internet bin



  • @Alexander Sulfrian: Wenn Du nur über den Proxy mit dem iNet verbunden bist - welche IP soll er dir denn dann ausgeben ?!



  • Hi,
    also ich glaube ich mus mal etwas weiter ausholen:
    Ich hab ein Programm welches sich zu einem anderen Rechner über die IP verbindet und Daten austauscht. (is ein Spiel) So das ganze mach ich in dem jeder Rechner seine IP in eine MySQL Tabelle schreibt, ein anderer Rechner die Ip raussucht und dann die Verbinung aufnimmt. So lange ich nicht über Proxy mit dem INet verbunden bin, bekomme ich die IP ja raus (http://checkip.dyndns.org/), aber sonst wird eben nur die IP des Proxies angezeigt und zu der kann ich doch nicht vebinden (oder hab ich einen Denkfehler?). Da das Programm von verschiedenen Benutzern (die ich vielleicht nicht kenne) benutzt werden soll, brauche ich eine Universalmethode wie ich die IP rausbekomme (z.B.: if (!Proxy) dyndns; else ???)!

    Ich will also irgendwie die IP, unter der ich im INet erreichbar bin, rausbekommen. Wie kriege ich das hin? Muss ich vielleicht irgendwie beim Proxy anfragen? (Noch mal zur Klarstellung ich will immer die IP des Rechners auf dem mein Programm augeführt wird, herausbekommen) Wenn ja gibt's da irgendwo Beispiele oder Protokollbeschreibungen!

    Upf, viel Schreibarbeit war das mal wieder!

    Danke für jegliche Ansätze, Lösungsideen und Lösungen!

    Alexander Sulfrian

    PS: Bei einer RAS-Verbindung kann ich die IP (auch mit Proxy) auslesen! Da hab ich ne Komponente(BCB - gab da auch schon mal einen Beitrag is aber eingegangen) die mir die IP anzeigt.

    PSPS: Wenn hier jemand ist der sich mit dem BCB auskennt, kann mir jemnad sagen welche IP die IPWatch-Komp von Indy anzeigt? Is das immer die richtige IP? Danke

    Ich hoffe ihr könnt mir helfen!

    Bin schon fast verzweifelt!!! 😞



  • hi Alexander Sulfrian

    irgendwie blick ich bei deinem problem nicht richtig durch.

    is das dein proxy ?
    gehst du nur ueber den proxy ins inet ?
    welche inet-verbindung hast du eigendlich ?

    (Noch mal zur Klarstellung ich will immer die IP des Rechners auf dem mein Programm augeführt wird, herausbekommen)

    das kannst du eben mit den scripten von dyndns usw. rausbekommen.

    kann man sich das game irgendwo mal angucken, damit man mal genau dein problem nachvollziehen kann ?

    Deadman



  • Hört sich für mich so an:
    Client-Programm -> Proxy -> Server
    Client ist in einem lokalen Netzwerk und greift über nen Proxy aufs Internet zu. Der Proxy versteckt die IP des Client-Rechners (mit der man eh nix anfangen kann, da sie lokal ist und vom Internet aus nicht zu erreichen ist...)

    Der Server ist im Grunde genommen ne IP-Datenbank und die Clients fragen nach ner IP aus der Datenbank und verbinden sich dann aber selber direkt ohne den Server.

    Benutzen die Clients normale TCP/UDP-Verbindungen oder tauschen die sich mit HTTP-GET-Anfragen aus ?



  • morgen leute ...

    So lange ich nicht über Proxy mit dem INet verbunden bin, bekomme ich die IP ja raus (http://checkip.dyndns.org/), aber sonst wird eben nur die IP des Proxies angezeigt und zu der kann ich doch nicht vebinden (oder hab ich einen Denkfehler?).

    checkip.dyndns.org zeigt dir immer deine inet-IP an. die leute koennen dich auch ueber den proxy erreichen. voraussetzung: der proxy muß die einkommende verbindung zu dir weiterleiten koennen. wenn der proxy dir gehoert, mußt ihm halt klar machen das er einkommende verbindungen auf port x zu deinem rechner weiterleiten muß. hoffe ich hab das nun mal so geschnallt, wie du das meintest.
    der proxy arbeitet so gesehen aehnlich wie ein router.

    was meint der rest dazu ?

    Deadman



  • Hi,
    danke für die Antworten:
    also ich verbinde direkt von einem TCP/IP-Server (ServerSocket - BCB-Kompo) zu einem TCP/IP-Client (ClientSocket). Das Programm soll auf allen Rechnern laufen und die sollen zu belibigen Rechnern verbinden können, also nicht nur zu meinem. Deshalb möchte ich eine IP des Rechners herausbekommen, über die ich connecten kann (ohne Proxie geht das ja mit dyndns aber ebend nicht mit Proxy). Das Programm soll wenn möglich mit allen Verbindungen klarkommen! Nochmal es ist nicht mein eigener Proxy (ich bin z.B. mit Freenet im I-Net und bin immer über den Freenet-Proxy im INet, kann ihn also nicht selber konfigurieren) und das game soll auch verbreitet werden (z.B. Shareware) und soll deshalb mit möglichst allen verschiedene Verbindungen klarkommen (DFÜ/DSL - mit/ohne Router/Proxy).

    Danke nochmals

    Alexander Sulfrian



  • Das kannste vergessen.
    Proxys sind eigentlich nur zum Webseiten weiterleiten (und cachen).
    Die nehmen eigentlich nur normale GET-Requests an und arbeiten wie ein normaler Webbrowser.
    Nur mit SOCKS oder HTTPS-Proxys könnte das evtl. funktionieren, dass der Server über den Proxy eine Verbindung zum Client aufbauen kann. http://www.geckil.com/~harvest/ssl/tunneling_ssl.html

    Es wäre besser es irgendwie hinzukriegen, dass der Client immer die Verbindung zum Server aufbaut und das Programm weitgehend unabhängig von der IP ist (wie es KaZaa macht - Clients hinter einer Firewall/Proxy/Router bauen die Verbindung auf - auch zu anderen Clients nicht nur zum Server...)



  • Hi,
    danke..

    aber wie meinst du das mit der Unabhängigkeit zur IP ? Ich kann doch nur zu einer IP connecten?

    Danke

    Alexander Sulfrian



  • re

    ich schaetz geeky meint es ungefaehr so:

    irgendwo im inet hast nen hauptserver stehen. dort hin verbindet sich mal jeder client. dort bekommt er dann von den anderen usern die grad online sind, die IP addy.
    der client wiederum beinhaltet eine server-compo und mehrere client-compos. meist werden die client compos dann dyn. erzeugt, wenn man sie braucht. nun kannst mit den client-kompos dich zu den anderen servern(clients) verbinden.
    sollte halt darauf geachtet werden, das wenn jemand aussteigt die anderen clients das auch mitbekommen. bei bandbreitenprobleme wird es auch gerne so gemacht, das es einen hauptserver gibt, dann untergeordnete und dann die clients. haengt halt von der anzahl ab, und was da alles uebers netz geschickt werden soll.

    mal gucken ob ich nun bloedsinn verzapft habe ;o)

    Deadman



  • Ich meinte das so:
    Der Client baut eine Verbindung zum Server auf.
    Der Server speichert die IP des Proxys.
    Jetzt versucht der Server eine Verbindung zum Client aufzubauen. Der Versuch schlägt fehl. Jetzt speichert sich der Server zusätzlich zur Proxy-IP, dass der Client einen Proxy benutzt (er weiss es ja jetzt).

    Der Server hat KEINE Möglichkeit den Rechner hinterm Proxy zu erreichen. Damit eine Kommunikation trotzdem möglich ist, muss der Rechner hinterm Proxy alle paar Meter eine Verbindung aufbauen und kann mit dieser Verbindung dann Informationen vom Server abrufen.

    CLIENT <= Ein Client hinterm Proxy
    SERVER <= Der Gameserver

    CLIENT: GET http://SERVER/?action=HalloGameserver HTTP/1.0
    SERVER: HALLO CLIENT
    Server speichert die IP und trennt dann die Verbindung

    Server versucht normale Verbindung zum Client aufzubauen.
    Geht nicht, also sitzt der Client hinterm nem Proxy. Das merkt sich der Server.

    Damit der Server dem Client was mitteilen kann, muss die Verbindung also vom Client geöffnet werden. Da der Client nicht weiss, wann der Server was von ihm will, muss der Client eben alle paar Meter mal nachfragen ob der Server was von ihm will:

    CLIENT: GET http://SERVER/?action=WillsteWasVonMir HTTP/1.0
    SERVER: YO! CLIENT xyz will mit dir zocken - bau mal ne Verbindung zu ihm auf.

    oder:
    CLIENT: GET http://SERVER/?action=WillsteWasVonMir HTTP/1.0
    SERVER: NÖ 😃


Anmelden zum Antworten