Get hostname and ip address of local computer(2) 

 

Following is a code that gets local machine IP addresses. The advantages over the article by Jeff Lundgren are that my code recognises ALL IP addresses and is ready for IPv6 ;-) 

char szHostName[128];

if( gethostname(szHostName, 128) == 0 )

{

// Get host adresses

struct hostent * pHost;

int i;

 

pHost = gethostbyname(szHostName);

 

for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )

  {

 CString str;

  int j;

 

  for( j = 0; j < pHost->h_length; j++ )

  {

 CString addr;

 

  if( j > 0 )

  str += ".";

 

  addr.Format("%u", (unsigned int)((unsigned

  char*)pHost->h_addr_list[i])[j]);

str += addr;

  }

   // str now contains one local IP address - do whatever you want to do with it (probably add it to a list)

  }

}

Date Posted: December 16, 1998