0
我使用下面的代碼從傳遞域名獲取IP。 它正在返回我正確的IP,但現在當某些網絡設置發生變化時服務器IP也發生了變化。 現在als0它回報我,舊IP不是新的。 任何幫助都非常讚賞。MFC中的GetHostByName&inet_ntoa中的問題(VC++)
CString CNDSClientDlg::GetIPFromDomain(char* cDomainName)
{
if(cDomainName == NULL)
{
MessageBox("Invalid Domain Name","Network Drive Solution", MB_ICONERROR | MB_OK);
return "";
}
char *cIPAddress = NULL;
WSADATA wsaData = {0};
int iResult = 0;
hostent *remoteHost = NULL;
struct in_addr addr;
// Initialize Winsock
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
{
MessageBox("WSAStartup failed","Network Drive Solution", MB_ICONERROR | MB_OK);
return "";
}
remoteHost = gethostbyname(cDomainName);
addr.s_addr = *(u_long *) remoteHost->h_addr_list[0];
cIPAddress = inet_ntoa(addr);
return cIPAddress;
}
您是否在'%windir%\ system32 \ drivers \ etc'中檢查了hosts文件?如果在那裏提到映射,那麼它將返回文件中提到的IP地址。 – Naveen 2010-12-13 07:32:38
@Naveen:沒有映射完成。 – 2010-12-13 08:34:56