IP-Adresse auslesen und in Datei speichern



  • Hi Freaks,
    ich hab eine Frage die schon oft gestellt, aber oft falsch beantwortet wurde. Ich will also mit C/C++ meine aktuelle IP herausfinden und in eine Datei speichern; wie letzteres geht weiss ich, ich sags nur damit ihr mir nicht wieder mit bereits fertigen Programmen wie "WinCfg" & "NetSTAT" kommt.

    Ich benutze übrigens Win2000 (was sonst images/smiles/icon_smile.gif, bin ELVIS PRESLEY FAN, seit 9 Stunden vor dem Rechner wegen meiner Bewerbungen und gleich im Bett.

    PS: Danke für Antwooooohhhhhrten ....... schnarch, schnarch, schnarch



  • Hi
    Das Problem ist,bei diesem Code, das er immer die letzte "angezeigt" IP speichert, bei mir ist es immer die Client IP, wenn ich im Netz bin, ansonsten meine Netzwerk IP. Ich hoffe aber trotzdem das es dir weiter hilft und wegen dem Speichern hast du ja gesagt das du weisst, wie es geht.

    ....
    #define NUM_ELEMENTS(x)  (sizeof((x)) / sizeof((x)[0])) // Für IP auslesen
    ....
    BOOL IP_auslesen(char* IP_ADRESSE)
    {
      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_ADDRESSE, "%d.%d.%d.%d", ucAddress[0], ucAddress[1], ucAddress[2], ucAddress[3]);
                }
            }
        }
        WSACleanup();
    
      return TRUE;
    }
    

    MfG Unwissender

    PS: Benutze das nächstes mal die Suchoption .

    [ Dieser Beitrag wurde am 26.03.2002 um 10:22 Uhr von Unwissender editiert. ]



  • Hi unwissender,
    sorry das ich so (dämlich) frage (bin kein besonders heller), aber was für Parameter muss ich der Funktion übergeben?



  • Meinst du BOOL IP_auslesen(char* IP_ADRESSE) ??
    Einen Zeiger auf einen char, der deine IP beinhalten soll.
    Der Funktionsaufruf würd den so aussehen:

    char IP_Adresse[16];
    IP_auslesen(IP_Adresse);
    

    Nach diesem Aufruf hast du im Char-Array deine IP stehen.


Anmelden zum Antworten