16,472
社区成员
发帖
与我相关
我的任务
分享
DWORD GetHostID()
{
char szLclHost[120];
LPHOSTENT lpstHostent;
SOCKADDR_IN stLclAddr;
SOCKADDR_IN stRmtAddr;
int nAddrSize = sizeof(SOCKADDR);
SOCKET hSock;
int nRet;
/* Init local address (to zero) */
stLclAddr.sin_addr.s_addr = INADDR_ANY;
/* Get the local hostname */
nRet = gethostname(szLclHost, sizeof(szLclHost));
if (nRet != SOCKET_ERROR)
{
/* Resolve hostname for local address */
lpstHostent = gethostbyname((LPSTR)szLclHost);
if (lpstHostent)
stLclAddr.sin_addr.s_addr = *((u_long FAR*)
(lpstHostent->h_addr));
}
}
// 获取本机IP
#define MAX_NAME_LEN 256
WSADATA wsaData;
if(WSAStartup(0x0202, &wsaData))
{
return;
}
char szHost[MAX_NAME_LEN];
::gethostname(szHost, MAX_NAME_LEN);
hostent* pHost = gethostbyname(szHost);
in_addr addr;
for(int i=0; ; i++)
{
char* p = pHost->h_addr_list[i];
if(!p)
{
break;
}
memcpy(&addr.S_un.S_addr, p, pHost->h_length);
char* szIp = inet_ntoa(addr);
CString strText(szIp);
AfxMessageBox(strText);
}
// 设置窗口标题
SetWindowText(...);