int CNetTestDlg::GetLocalHostName( CString& sHostName ) // 获取机器名 { char szHostName[256]; int nRetCode; nRetCode = gethostname(szHostName, sizeof(szHostName)); if (nRetCode != 0) { memcpy(szHostName, ("Not Available"), sizeof("Not Available")); return WSAGetLastError(); } sHostName = szHostName; return 0; }
int CNetTestDlg::GetIPAddress(const CString& sHostName, CString& sIPAddress) // 获取IP地址 { struct hostent *lpHostEnt = gethostbyname(sHostName); if (lpHostEnt == NULL) { sIPAddress = ""; return WSAGetLastError(); } LPSTR lpAddr = lpHostEnt->h_addr; if (lpAddr) { struct in_addr inAddr; memmove(&inAddr, lpAddr, 4); // 将地址进行转换成常规形式 sIPAddress = inet_ntoa(inAddr); if (sIPAddress.IsEmpty()) { sIPAddress = "Not available"; } } return 0; }