Ip Adresse



  • 😕 😕 Ich brauch dringend hilfe! Ich habe auf meiner Arbeit ein Projekt zu machen und muss dazu mit c++ die ip adresse auslesen können!
    Es wäre mir sehr hilfreich wenn ihr mir einen kompletten code schreiben könnten!!

    Hoffe ihr habt eine Lösung für mich!

    MFG Manni





  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Irgend etwas mach ich falsch ich hab immer nen fehler!

    #ifdef __BORLANDC__
      #pragma argsused
    #endif
    #include <winsock2.h>
    int main( int argc, char * argv[] )
    {
      void GetHostIP()
      {
        char *Ip;
        WSADATA wsaData;
        struct hostent *pHostEnt;
        struct sockaddr_in tmpSockAddr; //placeholder for the ip address
    
        // Not needed if it is already taken care by some other part of the application
        WSAStartup(MAKEWORD(2,0),&wsaData);
    
        char hostname[25];
        strcpy(hostname,"Test Computer Name")
        //This will retrieve the ip details and put it into pHostEnt structure
        pHostEnt = gethostbyname(hostname);
    
        if(pHostEnt == NULL)
        {
            printf("Error occured: %s\n",GetLastError());
            return;
        }
    
        memcpy(&tmpSockAddr.sin_addr,pHostEnt->h_addr,pHostEnt->h_length);
    
        Ip = NULL;
        Ip = new char[17];
        strcpy(Ip,inet_ntoa(tmpSockAddr.sin_addr));
        printf("Ip Address of the machine %s is %s\n",Ip);
    
        // Not needed if it is already taken care by some other part of the application
        WSACleanup();
        delete [] Ip;
      }
      return 0;
    }
    

    Bitte sagt mir was ich hier falsch mach! 😕



  • ManiacDevil schrieb:

    Bitte sagt mir was ich hier falsch mach! 😕

    Du verschachtelst Funktionen. Das ist in C und C++ nicht erlaubt.



  • Dann zeig mir mal bitte wie es richtig auszusehen hat!



  • Du musst die Funktion GetHostIP aus der Funktion main herausholen.

    Kann es sein, dass du keine Ahnung hast? Warum meldest du dich für so ein Projekt?



  • #ifdef __BORLANDC__
      #pragma argsused
    #endif
    int main( int argc, char * argv[] )
    {
      return 0;
    }
    void GetHostIP()
    {
      char *Ip;
      WSADATA wsaData;
      struct hostent *pHostEnt;
      struct sockaddr_in tmpSockAddr; //placeholder for the ip address
    
      // Not needed if it is already taken care by some other part of the application
      WSAStartup(MAKEWORD(2,0),&wsaData);
    
      char hostname[25];
      strcpy(hostname,"Test Computer Name")
      //This will retrieve the ip details and put it into pHostEnt structure
      pHostEnt = gethostbyname(hostname);
    
      if(pHostEnt == NULL)
      {
          printf("Error occured: %s\n",GetLastError());
          return;
      }
    
      memcpy(&tmpSockAddr.sin_addr,pHostEnt->h_addr,pHostEnt->h_length);
    
      Ip = NULL;
      Ip = new char[17];
      strcpy(Ip,inet_ntoa(tmpSockAddr.sin_addr));
      printf("Ip Address of the machine %s is %s\n",Ip);
    
      // Not needed if it is already taken care by some other part of the application
      WSACleanup();
      delete [] Ip;
    }
    

    Wie ich schon am Anfang geschrieben hab brauch ich das für ein Schulprojekt und da ich mich schon seid über einen Jahr nicht mehr mit C++ beschäftigt habe weiß ich nicht mehr wie ich das machen muss!
    Bitte sagt mir was hier falsch ist! 😕



  • Das ist ja mal wieder typisch wir sollen die arbeit für dich machen und du kommst nur mit "sagt mir was hier falsch ist"
    Wie wäre es mit ner Fehlermeldung? Und schau mal ins FAQ ich denk ich hab da mal was gelesen mit IP 😕

    MfG schirrmie



  • Am geilsten Find ich immer, das der Compiler in deinem Fall warscheinlich die ganze FUnktion Wegoptimiert, weil sie NIE aufgerufen wird 😃



  • Ja stimmt wenn man sich den Quellcode anschaut ist der erste Falsch und der zweite mit

    int main( int argc, char * argv[] )
    {
      return 0;
    }
    

    Sinnfrei
    Wie wäre es mit ➡

    void GetHostIP();
    int main( int argc, char * argv[] )
    {
      GetHostIP();
      return 0;
    }
    void GetHostIP()
    {
    ...
    }
    

    Aber ka hab mir halt den Rest nicht angeschaut

    MfG schirrmie


Anmelden zum Antworten