IP herausfinden, mit der ich im Internet bin



  • Hallo,
    seit ich mittels Router im Internet bin, bekomme ich auf diese Weise:

    void GetIP(char* pszIP)
    {
        struct    hostent* h;
        WSADATA   wsaData;
        UCHAR     ucAddress[4];
        CHAR      szHostName[MAX_PATH];
        int       x;  
    
        WSAStartup(MAKEWORD(1, 1), &wsaData);
        if(SOCKET_ERROR != gethostname(szHostName, NUM_ELEMENTS(szHostName)))
        {
            if(NULL != (h = gethostbyname(szHostName)))
            {
                for(x = 0; (h->h_addr_list[x]); x++)
                {
                    ucAddress[0] = h->h_addr_list[x][0];
                    ucAddress[1] = h->h_addr_list[x][1];
                    ucAddress[2] = h->h_addr_list[x][2];
                    ucAddress[3] = h->h_addr_list[x][3];
                    wsprintf(IP_ADRESSE, "%d.%d.%d.%d", ucAddress[0], ucAddress[1], ucAddress[2], ucAddress[3]);
                }
            }
        }
        WSACleanup();
    }
    

    nur die IP, mit der ich mit dem Router verbunden bin, also die, die ich im Intranet habe.
    Wie kann ich nun die IP herausfinden, mit der ich im Internet bin?

    Danke für Antworten.



  • Hm... wenn du über einen Router ins Internet gehst bist du nicht im Internet oder hab ich da was falsch verstanden (bzw bist du irgendwie schon, da du ja über den Router verbunden bist 😉 )

    aber warum sollte dein Rechner dann eine eigene IP im Internet haben? Die hat halt der Router...

    (Oder kann man über einen Router eine Dial-Up Verbindung aufbauen?? keine Ahnung)

    bis denne, Schmelly



  • Original erstellt von <Schmelly>:
    aber warum sollte dein Rechner dann eine eigene IP im Internet haben?

    Das habe ich nicht, ich habe im Intranet eine eigene IP, die der Router beim booten mir zuweißt und die ich auch einstellen kann.
    Aber im Internet sieht es von außen natürlich so aus, als wäre ein Computer im Internet, im Intranet haben die Computer natürlich jeweils eine andere IP.



  • probiers mal so: (bei mir gings, weiss net wies mit nem router ist und obs die richtige ip zurückgibt)

    LPHOSTENT lpLocal = gethostbyname("");
    
    //ip steht hier lpLocal->h_addr_list;
    


  • Du könntest sie beispielsweise per http von nem cgi-skript abrufen:
    http://checkip.dyndns.org/



  • Nein, funktioniert leider auch nicht -> Ich erhalte wieder die Intranet-IP.

    Danke für weitere Antworten.



  • Was ist denn das für ein komischer Router ?
    Wenn das Skript bei dyndns deine lokale IP sagt, müsste es auch deinen lokalen Hostname ausgeben und es würde versuchen die Antwort an die lokale IP zu senden, was natürlich nicht klappen wird
    => Du dürftest die Ausgabe von dem Skript demnach eigentl. gar nicht sehen 😉

    Edit: Grammatikfehler behoben 😉

    [ Dieser Beitrag wurde am 13.08.2002 um 18:34 Uhr von geeky editiert. ]



  • Original erstellt von geeky:
    Was ist denn das für ein komischer Router ?

    Der ist nicht komische, der verhält sich genauso wie der an unserer Schule -> lokale IP.

    Wenn das Skript bei dyndns deine lokale IP sagt, müsste es auch deinen lokalen Hostname ausgeben und es würde versuchen die Antwort an die lokale IP zu senden, was natürlich nicht klappen wird
    => Du dürftest die Ausgabe von dem Skript demnach eigentl. gar nicht sehen 😉

    Von welchem Script sprichst du?



  • Von dem Skript, welches sich hinter diese URL verbirgt:
    http://checkip.dyndns.org/

    Edit: Schon wieder nen verdammten Grammatik-Fehler behoben!

    [ Dieser Beitrag wurde am 13.08.2002 um 20:39 Uhr von geeky editiert. ]



  • Achso, sorry, als ich eine Antwort auf f00lish geschrieben habe, hast du gepostet und ich habe deinen Beitrag ganz überlesen 🙄 .

    Ja, das Script gibt die richtige IP 🙂 .
    Kann ich da sichergehen, dass das über diesen Weg immer geht?



  • Normalerweise ist das relativ sicher (checkip.dyndns.org könnte mal ausfallen oder der hostname sich ändern, weil die merken, dass ganz viele deren Script (miss)brauchen *gg*)



  • Hi,
    ich gehe über DFÜ in Internt und habe meine IP .*.***.37 bestimmt. Wenn ich aber http://checkip.dyndns.org/ benutze bekomme ich .*.***.85? Was macheich falsch, oder geht das nur wenn ich mit DSL im Inernet bin?

    Danke

    Alexander Sulfrian



  • Original erstellt von Alexander Sulfrian:
    Hi,
    ich gehe über DFÜ in Internt und habe meine IP .
    .
    **.37 bestimmt. Wenn ich aber http://checkip.dyndns.org/ benutze bekomme ich .*.***.85? Was macheich falsch, oder geht das nur wenn ich mit DSL im Inernet bin?

    Danke

    Alexander Sulfrian**

    Häh? Normalerweise bekommst Du bei jeder "Einwahl" eine neue (andere) IP zugewiesen. Oder was ist Dein Problem??

    MfG Sarge



  • HI,
    [edit]Misst Fehler! Könnte das sein, das der Script dir IP meines Proxies anzeigt???[/edit]

    Danke

    Alexander Sulfrian

    [ Dieser Beitrag wurde am 23.02.2003 um 15:12 Uhr von Alexander Sulfrian editiert. ]



  • Hi,
    wie bekomme ich denn nun die richtige IP raus?

    Danke

    Alexander Sulfrian

    PS: Ist wirklich wichtig!



  • hier ein beispiel in delphi... so ein script kann man doch überall hinterlegen und muss nicht dyndns bemühen!
    http://www.swissdelphicenter.ch/de/showcode.php?id=965 http://www.swissdelphicenter.ch/de/showcode.php?id=1013



  • Hi,
    funktioniert leider nicht:
    1. das mit Perl-Script kann nicht funktionieren:

    REMOTE_ADDR
    Enthält die IP-Adresse des Server-Rechners, über den das CGI-Script aufgerufen wurde. Es muß sich hierbei nicht unbedingt um die IP-Adresse des aufrufenden Client-Rechners handeln - der Wert kann beispielsweise auch von einem Proxy-Server stammen. (SelfHTML)

    2. zeigen beide auch nur die IP des Proxies an!

    Also wer kennt noch eine Möglichkeit die reale IP eines Rechners im I-Net rauszubekommen, also die mit der ein Rechner im I-Net zu erreichen ist!

    Danke

    Alexander Sulfrian



  • ich kenne vielleicht eine möglichkeit. was hast du denn für einen router (genaue modellbezeichnung)?



  • geiler Name 😃 lol 😃



  • Sehr geil! 😞



  • Ihr hab Grundlegendes im INET mißverstanden.

    Ein Router bekommt über DHCP (wen man keine StaticIP hat) eine IP zu gewiesen.

    Alle Rechner in der DMZ haben eine IP welche es im INET nicht geben darf. (192.168.X.X)

    Fragt man nun die IP adresse ab bekommt man immer die Interne da der Rechner von der INET-IP nie etwas weiß.

    Ins WAN maqueriert der Router alle Anfragen aus der DMZ mit der Externen IP. Somit weiß keine Rechner der sich angesprochen fühlt etwas vohn eurer IP in der DMZ.

    Fragt man nun einen Rechner Im WAN ab kennt der nun die INET-IP
    Man muss sich lediglich ein Script schreiben welches diese wider zurückgibt.
    z.B. (PHP mit echo). Dise muss man dann wieder vom Client in der DMZ auswerten.

    Benutzt man eine Proxy masqueriert dieser auch die IP.
    Somit bekommt man nur die IP des Proxys. Ist aber nicht jeder Proxy gleich.


Anmelden zum Antworten