Get hostname and ip address of local computer (2)

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

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


More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read