Gethostbyname

From Code Trash
Jump to: navigation, search

Copied from the below codeguru link


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)
 	}
}

Complete Program

http://rabbit.eng.miami.edu/info/functions/internet.html#gethostbynamesample1

Reference