获取计算机ip地址和计算机名字
#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 };