very simple question

F699ebb187331fdf7f7875320e3e7e3e
0
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.

Fdbdc4176840d77fe6a8deca457595ab
0
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

Db7c6256c6650d0a94ac64a980503733
0
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. ;)

F699ebb187331fdf7f7875320e3e7e3e
0
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

77c60eaca2812f5b7b91b03705fa64e3
0
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:

4851117d61425bafb6c034e0f595d517
0
DrunkenCoder 101 Jul 21, 2003 at 15:28

or have a look at select() …