2010-12-13 10 views
0

Ich verwende den folgenden Code, um IP vom übergebenen Domain-Namen zu erhalten. Es gibt mir die richtige IP zurück, aber jetzt, wenn einige Netzwerkeinstellungen geändert werden, wird Server Ip ebenfalls geändert. Nun gibt es mir auch, dass alte IP nicht die neue ist. Jede Hilfe wird sehr geschätzt.Problem in GetHostByName & inet_ntoa in MFC (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; 

}

+0

Haben Sie die Hosts-Datei in '% windir% \ system32 \ drivers \ etc' überprüft? Wenn das Mapping dort erwähnt wird, gibt es die in der Datei erwähnte IP-Adresse zurück. – Naveen

+0

@Naveen: Keine Zuordnung erfolgt. –

Antwort

0

Sie wahrscheinlich die Adresse von Ihrem DNS-Cache erhalten.

Verwenden Sie ipconfig /flushdns, um den Cache zu löschen.