您的位置:首页 > 其它

gethostname获取主机IP地址

2014-02-21 10:15 351 查看
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,2),&wsaData))
{
AfxMessageBox(_T("failed to load winsock!"),MB_OK|MB_ICONSTOP);
return -1;
}

char hostname[50];
int err = gethostname(hostname,sizeof(hostname)); //返回值为0表示成功获取主机名

if(err!=0)
{
AfxMessageBox(_T("gethostname error!"));
int lasterror=::GetLastError();
TRACE("gethostname error :%d=\n",lasterror);
}
//get IPv4 name
hostent *pHost=::gethostbyname(hostname);
in_addr addr;
char *p=pHost->h_addr_list[0];
memcpy(&addr.S_un.S_addr,p,pHost->h_length);

char *v4ip=::inet_ntoa(addr);
CString v4(v4ip);
m_strIP=v4;


调用gethostname()之前必须先使用WSAStartup命令来启动WSA(Windows Sockets Asynchronous,Windows异步套接字)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: