我使用下面的代码从传递域名获取IP。 它正在返回适当的IP,但现在当某些网络设置被更改时,服务器Ip也会更改。 现在als0它正在归还我的旧IP而不是新IP。 任何帮助都非常赞赏。
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;
}
答案 0 :(得分:0)
您可能从DNS缓存中获取地址。
使用ipconfig /flushdns
清除缓存。