#include <WinSock2.h>
#pragma comment(lib, "WS2_32")
WSADATA WSAData;
int WSAReturn ;
char name[20];
struct hostent *pSysinfo;
char ipAddr[20];
WSAReturn = WSAStartup(MAKEWORD(2,2),&WSAData);
if(WSAReturn == 0)
{
gethostname(name,20); //获取本地主机名
m_strHostName = name;
// UpdateData(FALSE);
pSysinfo = gethostbyname(name);
sprintf(ipAddr,"%d.%d.%d.%d",
pSysinfo->h_addr_list[0][0] & 0x00ff,
pSysinfo->h_addr_list[0][1] & 0x00ff,
pSysinfo->h_addr_list[0][2] & 0x00ff,
pSysinfo->h_addr_list[0][3] & 0x00ff);
m_strIP = ipAddr;
UpdateData(FALSE);
}
使用gethostbyaddr函数可以送网络地址得到对应的“主机”,这里得到的主机可能是多个而不止一个
struct HOSTENT* FAR gethostbyaddr{
const char* addr; //<输入>指向网络字节顺序地址的指针
int len; //地址长度
int type;//地址类型,应为AF_INET
};