IP-Adresse(Öffentliche)



  • Mich würde es interesssieren wie man die IP-Adresse bekommt ohne auf wieistmeineip.de zu gehen. Denn in SFML gibt es eine Funktion mit der man an die IP-Adresse gelangt:

    Please note that GetPublicAddress() is very slow : the only way to get a public address is to get it from the outside (especially when you are behind a proxy or a firewall), so it connects to an external website (www.whatismyip.org) and parse the returned web page to extract the public IP address.

    Nur will ich ungern mich auf eine Seite verlassen die es in ein paar Wochen/Monaten/Jahren nicht mehr gibt.

    Wie macht es beispielsweise Qt? .NET?

    Viele Grüße Christoph



  • Chrisi85 schrieb:

    Nur will ich ungern mich auf eine Seite verlassen die es in ein paar Wochen/Monaten/Jahren nicht mehr gibt.

    Dann bau ne eigene Seite, die das macht und die es in win paar Wochen/Monaten/Jahren noch gibt.



  • Chrisi85 schrieb:

    Mich würde es interesssieren wie man die IP-Adresse bekommt ohne auf wieistmeineip.de zu gehen.

    Welche? Die deiner Interfaces mit ifconfig oder ipconfig. Oder doch die Adresse eines anderen Rechners?
    🙂



  • mngbd schrieb:

    Chrisi85 schrieb:

    Mich würde es interesssieren wie man die IP-Adresse bekommt ohne auf wieistmeineip.de zu gehen.

    Welche? Die deiner Interfaces mit ifconfig oder ipconfig. Oder doch die Adresse eines anderen Rechners?
    🙂

    Mit ifconfig und ipconfig bekomme ich die lokalen ich will aber die öffentliche also die man vom provider bekommt.



  • Über UPnP kann man die externe IP-Adresse ermitteln, wenn der Router das unterstützt.



  • Chrisi85 schrieb:

    Mit ifconfig und ipconfig bekomme ich die lokalen ich will aber die öffentliche also die man vom provider bekommt.

    Also die vom Router, der im äussersten Netz hängt, in diesem Netz. Die kannst du nur von aussen herausfinden, wenn der Router nicht so nett ist, sie dir nach innen zu verraten.
    🙂



  • ok vielen dank für eure antworten! 🙂

    und weiß wer wie Qt das macht?



  • Seit wann bieten Qt oder .NET eine Funktion an die das kann?

    Mir fällt auch grad nix ein wo man die eigene öffentliche IP kennen müsste (EDIT: wo ein Programm die IP automatisch ermitteln müsste meine ich jetzt).

    z.B. wenn man ein Spiel mit jemand übers Inet spielen möchte. Dabei hat man dann entweder einen Lobby-Server, dann kann der ja die externe IP des jeweils anderen übermitteln, womit man dann seinen NAT-Punch machen kann. Oder man verwendet nen Instant-Messanger oder ähnliches (von mir aus auch Telefon), dann kann man ja einfach seine IP über whatismyip.org oder ähnliche Services ermitteln, und sie dann über den IM (oder was halt verwendet wird) dem Spielpartner schicken. D.h. selbst wenn das Programm die eigene IP ermitteln könnte, könnte es damit nichts anfangen, da die öffentliche IP des anderen Spielers benötigt wird.
    Ohne Server zu dem sich beide Instanzen verbinden können, und der die Daten dann dem jeweils anderen schicken kann, könnte das Programm die IP bloss anzeigen, damit der User sie abtippen und wem anderen schicken kann. -> kann der User IMO gleich whatismyip.org verwenden.
    Und wenn es einen Server gibt, dann soll der auch gleich das Ermitteln der öffentlichen IP übernehmen. Ist ja kein Ding, der braucht ja bloss nachsehen wer (welche IP) mit ihm redet.

    Falls du eine eigene Domäne zur Verfügung hast (die lange genug existieren wird), und da drauf irgendwelche Scripts laufen lassen kannst (PHP, ...), sollte das ausreichen, um dir selbst sowas zu basteln.



  • Hoffentlich kommt bald endlich IPv6, dann hat das rumgefrickel mit NAT endlich ein Ende.



  • volkard schrieb:

    Chrisi85 schrieb:

    Nur will ich ungern mich auf eine Seite verlassen die es in ein paar Wochen/Monaten/Jahren nicht mehr gibt.

    Dann bau ne eigene Seite, die das macht und die es in win paar Wochen/Monaten/Jahren noch gibt.

    MyIp.php:

    <?php echo $REMOTE_ADDR; ?>
    

    hochladen. Dann hast du sie (vorausgesetzt du benutzt keinen Proxy).



  • @EOP: Weil du grad Proxy schreibst: weisst du zufällig wie "üblich" es ist dass Proxies einen X-Forwarded-For Header-Eintrag schicken?
    Wenn der vorhanden ist könnte man das Ganze auch mit Proxy zum Laufen bekommen (vorausgesetzt die Client-IP ist eine öffentliche, was natürlich oft genug nicht der Fall ist).



  • hustbaer schrieb:

    @EOP: Weil du grad Proxy schreibst: weisst du zufällig wie "üblich" es ist dass Proxies einen X-Forwarded-For Header-Eintrag schicken?
    Wenn der vorhanden ist könnte man das Ganze auch mit Proxy zum Laufen bekommen (vorausgesetzt die Client-IP ist eine öffentliche, was natürlich oft genug nicht der Fall ist).

    Hi hustbaer,
    ich hab schon mal was über das Thema gepostet ("was ist der Unterschied zwischen anonym und high anonym proxies" oder so ähnlich).

    Die X-Forwarded-For und Via HTTP-header-Variablen werden von transparenten oder non-high-anonymous proxies gesendet.

    Via zeigt dem server im Prinzip nur, daß grundsätzlich ein Proxy benutzt wurde.
    X-Forwarded-For verrät (spill) deine IP-Adresse falls es nicht sogenannte Elite-Proxies sind, die (hier und) in remote_addr eine Fantasie-IP eintragen (ja das gibt's auch. Sogenannte distorting proxies).

    remote_addr ist das, was der server in erster Linie zusehen bekommt.

    Das ganze Proxy-Thema ist aber recht umfangreich.

    Im Allgemeinen sollte ein Test von X-Forwarded-For und remote_addr reichen (wenn kein elite proxy benutzt wurde).

    Du kannst ja mal nach proxyjudge oder (inurl:)azenv.php googeln und dann eine .../azenv.php-seite aufrufen.
    Keine Angst - da passiert nix Schlimmes. 😉

    EDIT:
    Wie kann eine Client-IP nicht öffentlich sein? Irgendeine IP wird immer gesendet.
    Wie die dann mit NATS weitergeleitet wird ist eine ganz andere Geschichte, die hiermit gar nix zu tun hat. Hier geht's um die public IP, die der server zu sehen bekommt.



  • Mit nicht öffentlicher Client-IP meine ich z.B. 192.168.1.42 oder dergleichen.

    Sagen wir wir haben ein 192.168.1.0/24 Netz.
    Da drin steht ein Proxy mit Adresse 192.168.1.10 und ein anderer PC mit Adresse 192.168.1.42.
    Der Browser vom 192.168.1.42 PC hat 192.168.1.10 als Proxy eingestellt.
    Die Firewall erlaubt nur 192.168.1.10 per NAT (PAT, IP-Masquerading, IP-Sharing - wie man es auch nennen will) rauszuconnecten.
    WAN-seitig hat die Firewall 80.1.1.1.
    192.168.1.42 hat also keine öffentliche IP.

    Klassischer Fall "Restriktives Firmennetz" würde ich meinen.

    Was sollte in dem Fall dann im X-Forwarded-For drinnenstehen?
    "192.168.1.42, 192.168.1.10"?
    "192.168.1.42, 80.1.1.1"?
    Oder gar "80.1.1.1, 80.1.1.1"?
    Oder ganz was anderes?



  • "Oder gar" würde drinstehen falls X-Forwarded-For überhaupt gesendet würde:

    80.1.1.1

    Alles Andere dringt nicht nach Aussen:
    http://www.iana.org/assignments/ipv4-address-space/

    192.168.0.0/16 reserved for Private-Use Networks [RFC1918]

    http://www.faqs.org/rfcs/rfc1918.html

    Das gleiche gilt für Remote_Addr falls es sich um einen nicht anonymen Proxy handelt.

    Um wirklich anonym unterwegs zu sein musst du erst Zugriff auf einen server haben, dem dann einen SOCKS-Proxy installieren und den dann benutzen (so sagt man ;)).
    Das ganze Prozedere u.U. in Kaskaden.

    Das ist aber wahrscheinlich kein Thema, das unbedingt bei c-plusplus.net erörtert werden muss. Andere Baustelle.



  • Also der Proxy bei mir in der Firma (genau so ein Setup wie beschrieben) schickt anscheinend keine brauchbare X-Forwarded-For.
    http://www.proxyblind.org/proxy-anonymous-checker.shtml schreibt zumindest

    Via 	HTTP_X_FORWARDED_FOR = unknown
    

    EOP schrieb:

    "Oder gar" würde drinstehen falls X-Forwarded-For überhaupt gesendet würde:

    80.1.1.1

    Alles Andere dringt nicht nach Aussen:
    http://www.iana.org/assignments/ipv4-address-space/

    192.168.0.0/16 reserved for Private-Use Networks [RFC1918]

    Dass das eine reserved IP Range ist ist mir schon klar, daher ja auch die Frage. Nur wer soll die interne IP auf ne externe umschreiben?

    Sicherlich nicht die Firewall die das NAT macht, denn die Firewall hat gefälligst die Finger aus dem Applikations-Protokoll (HTTP in dem Fall) zu lassen. Bzw. kann auch garnicht alle Applikations-Protokolle kennen.

    Der Proxy selbst? Dazu müsste der Proxy sämtliche NATs kennen die auf dem Weg zum Server passieren, und das kann er nicht.

    -> IP Adressen auf Schichten die über IP liegen zu verschicken ist immer doof, weil es mit NAT Probleme macht. FTP demonstriert das recht schön.



  • X-Forwarded-For wird nicht von reverse proxies (wie in deinem Fall) gesendet. Das wäre ja kontraproduktiv. 😉
    Obwohl es auch so genial programmierte Webseiten gibt, die dir

    302 Found
    Location: http://192.168.x.x/irgendwas.php

    senden.

    Es wird normalerweise nur von transparenten oder "schwach" anonymen proxies gesendet.
    Eine Notwendigkeit oder gar Verpflichtung diese Header-Variable zu senden gibt es nicht.

    Wenn sie gesendet wird, ist es nützlich, um den Grad der Anonymität einschätzen zu können. Mehr aber auch nicht.

    Die externe IP kommt(wird verwaltet) von deinem router.



  • @EOP:
    Hihi, du scheinst anzunehmen dass ich von IP so überhaupt garkeinen Dunst habe.
    Das ist nicht so. Ich bin sicher kein Profi, aber ein wenig kenne ich mich schon aus 😉

    Vonwegen Reverse-Proxy: ein Reverse-Proxy ist ganz was anderes. Den schaltet man VOR einen Web-Server. Um den zu entlasten/schützen/was auch immer.

    In meinem Fall ist da einfach ein Firmennetz mit einem stinknormalen Squid Proxy. In meinem Browser habe ich den eingetragen, sonst würde ich nicht raus kommen. Da ist nichts reverse und nichts transparent und überhaupt nichts aussergewöhnlich. Ausser dass der Proxy eben im internen Netz steht, und daher auch eine interne IP hat, und daher auch die interne IP meines PCs sieht. Und die daher auch nicht sinnvoll eintragen kann.



  • hustbaer schrieb:

    @EOP:
    Hihi, du scheinst anzunehmen dass ich von IP so überhaupt garkeinen Dunst habe.

    No I don't. Never underestimate your enemy. Whereas I don't consider you as an enemy.

    hustbaer schrieb:

    Vonwegen Reverse-Proxy..,

    Oki doki - I realised the level of your knowledge.

    Let's call it "incomplete".

    Regards EOP

    EDIT:
    What's your problem?
    Bypassing your internal proxy?

    Set up a VPN or,....
    There are some ways to achieve this.

    I'd help you, if you'd live in Iran e.g.



  • Huch?

    ad p.S.: ich habe gar kein Problem. Ich wollte nur wissen wie das bei Proxies so üblich ist, was die eintragen oder auch nicht. Speziell eben in nicht-trivialen Fällen wie wenn sie mit ner privaten IP laufen. Ist aber nicht SO wichtig. Reine Neugier.



  • SG1 schrieb:

    Hoffentlich kommt bald endlich IPv6, dann hat das rumgefrickel mit NAT endlich ein Ende.

    Ipv6 dürfte daran nix ändern, auch in IPv6 gibt es einen privaten nicht von öffentlichen Netzen Routbaren Adressbereich, auch mit IPV6 kann man Subnetten.

    In Netzen wo auch mehrere Öffentliche IP Adressen existieren, unter welchen Serverdienste bereitgestellt werden sollen, iexistiert meist noch eine Firewall , welche den eingehenden Trafic limitiert und das Netzt was nicht sichtbar nach aussen seien soll hinter einem Nat versteckt.

    Vermutlich wird auch keiner in privaten Netzen ipv6 einsetzten, nur extern. Für eigentlich jedes private Netz reichen die IPv4 Adressen.
    Zumindest kann man ipv 4 noch im Kopf umrechnen ^^ das ist bei ipv6 schon
    nicht mehr ganz so Trivial.


Anmelden zum Antworten