第一步:
加载WinSock2静态链接库文件。
#include <WinSock2.h>
#pragma comment(lib,"WS2_32.lib")
bool LoadWinSock()
{
WSADATA wsData;
int nReasult = ::WSAStartup(MAKEWORD(2,2),&wsData);
if(-1 == nReasult)
return false;
return true;
}
第二步:
获取本地的主机名称。
hostent* pHostent = NULL;
char szHostName[256];
memset(szHostName,0,sizeof(szHostName));
int nResualt = ::gethostname(szHostName,sizeof(szHostName));
if (-1 == nResualt)
return -1;
char* pHostName = szHostName;
printf("Host Name is %s.\n",pHostName);
通过主机名称,获取当前主机名下所拥有的IP地址列表,并一一输出。
hostent* pHostent = NULL;
pHostent = ::gethostbyname(szHostName);
in_addr addr;
if (NULL != pHostent)
{
for (int i=0;;i++)
{
char* p = pHostent->h_addr_list[i];
if (p==NULL)
break;
memcpy(&addr.S_un.S_addr,p,pHostent->h_length);
char* szIp = ::inet_ntoa(addr);
printf("Host Ip Address is %s.\n",szIp);
system("pause");
}
}
参考源码:点击下载