very simple question

starboarder2001 101 Jul 15, 2003 at 03:25

in c++ what function will return your IP address? I have searched for it but no luck. I figured you guys would know it off the top of your heads.

5 Replies

Please log in or register to post a reply.

dk 158 Jul 15, 2003 at 03:53

If you’re using windows, you can get your IP address using WinSock. You can’t get the IP address in “C/C++”. You’ll have to use a library.

      #include <winsock2.h>

      WORD wVersionRequested;
      WSADATA wsaData;
      char name[255];
      CString ip;
      PHOSTENT hostinfo;
      wVersionRequested = MAKEWORD( 2, 0 );

      if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )

            if( gethostname ( name, sizeof(name)) == 0)
                  if((hostinfo = gethostbyname(name)) != NULL)
                        ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
            WSACleanup( );

don’t forget to link with Wsock32.lib

MA_Mestre 101 Jul 15, 2003 at 08:10

if u use apex’s code ( into VC6.0 ), and u need #include <windows.h> u must put #include <winsock2.h> before windows include. Otherwise the compiler found data types repeated. ;)

starboarder2001 101 Jul 19, 2003 at 06:12

I have another question…. :)

I am using WinSock.

When i call: recv() it waits at that line until it is sent something. Is there a way i can set the function to time out if nothing is sent after a few secs? I am writing a simple chat program..and i need it to check if something was recieved..and if it didnt then just contenue with the program.

//take input
//send input
//recieve text //i dont need it to wait here until it is sent something :\
//display text

Obunako 101 Jul 19, 2003 at 09:47

Using WSAAsyncSelect u can recive a message to a window procedure when u get some data, or other network event, about u socket. Try to use it !!! :nod:

DrunkenCoder 101 Jul 21, 2003 at 15:28

or have a look at select() …