WAN IP eritteln (hinter Router)
-
Hi all,
hab da mal ne Frage, wie kann ich in C++ die WAN IP ermitteln?Nicht die Lokale IP, sondern die IP mit der ich meinen Router von außen erreichen kann.
Natürlich soll das auch ohne Router funkionieren, normale DFÜ Verbindung
Schon mal Danke für die Hilfe
Gruß FB
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
kannst dir ein php scryt schreiben und uploaden
schau mal hier:
http://home.pages.at/reima/ipadress.phpgruss reima
-
Du kannst die IP auf verschiedenen Wegen auslesen:
Du öffnest eine Seite, die deine IP anzeigt, etwa http://www.whatismyip.com/.
Du öffnest das Konfigurationsmenü des Routers und lässt dir dort dir IP anzeigen (Router-spezifisch, kompliziert).
Du machst eine telnet-Verbindung zum Router auf und lässt dir die IP geben (auch router-spezifisch, sollte aber simpel zu programmieren sein).p.s.:
Normalerweise würde ich hier auf die Suchfunktion verweisen.
-
Dnake!
@reima : In deiner PHP Datei steht einfach meine IP Adresse, nicht der Befehl zum ermitteln!
@cd9000: Wie mach ich dass mit Telnet in C++, hast du da ne Ahnung?
Ich will dass mein Programm auf jedem Rechner funktionier.
Mein Programm erstellt einen Server-Socket und schreibt die IP in eine Serverliste auf einen FTP Server. So das jeder Client die Liste liest und connectet.Nur muss ich jetzt wissen wie man die IP ermittelt. Benutze Borland C++ Builder!
Wurde komischerweise aus dem Forum verschoben!Gruß Frederik
-
FB schrieb:
In deiner PHP Datei steht einfach meine IP Adresse, nicht der Befehl zum ermitteln!
Wenn dein Programm diese Seite aufruft, was bekommt das Programm dann geschickt?
FB schrieb:
Wie mach ich dass mit Telnet in C++, hast du da ne Ahnung?
Du öffnest eine Verbindung auf dem telnet-Port und sendest Benutzername/Kennwort. Das geht mit Sockets -> Google, FAQ. Telnet sind soweit ich weiß einfache Klartextzeilen.
Ich will dass mein Programm auf jedem Rechner funktionier.
Das funktioniert aus zwei Gründen nicht mit der telnet-Variante:
1. Du kennst nicht Benutzername/Kennwort des Routers.
2. Jeder Router hat andere telnet-Befehle.Also doch die Webseiten-Methode.
-
FB schrieb:
Wurde komischerweise aus dem Forum verschoben!
Wie hier schon gesagt gibt es keine direkte programmiertechnische Lösung, aus dem LAN heraus die WAN-IP eines Routers zu ermitteln. Lediglich der Umweg über einen externen Server oder der direkte Zugriff über die Konfigurationsschnittstelle des Routers, so vorhanden, ermöglichen das. Nichts davon ist C++-, VCL- oder BCB-spezifisch.
Wie man ein PHP-Skript auf einem entfernten Server aufruft und das Ergebnis auswertet, oder wie man eine Telnet-Verbindung aufbaut, solche Fragen würden ggf. in's BCB-Forum passen.
-
Lösung: Baue dir ein PHP-Script welches die Remote-IP dort hinschreibt wo du sie brauchst und als Rückgabewert deine IP liefert. So ein Script hat nicht mehr als
5-10 Zeilen.
Stelle dieses auf einen Server deiner Wahl.Mit C++ öffnest du einen Socket (Port 80) zu diesem Server und schreibst auf ihn einen Header.
z.B.: GET /deinipscript.php HTTP/1.0\n\n
wenn deine URL www.deinserver.de/deinipscript.php
ist.Zum Schluß noch von diesem Socket lesen und du hast deine IP.
-
Danke! werde mir mal was basteln!
Würde aber schon gerne das PHP Script selber schreiben.
@reima: Kannst du mir die Befehle geben die deine php datei erzeugen?
Gruß FB
-
FB schrieb:
Kannst du mir die Befehle geben die deine php datei erzeugen?
Googlesuche nach "php ip anzeigen", erstes Ergebnis: http://www.webmaster-resource.de/tricks/php/ip-adresse-anzeigen.php