int CMyDialog::GetIPAddress(const CString &sHostName, CString &sIPAddress)
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return 0;
}
struct hostent *lpHostEnt = gethostbyname (sHostName);
if (lpHostEnt == NULL)
{
// An error occurred.
sIPAddress = _T();
return WSAGetLastError();
}
LPSTR lpAddr = lpHostEnt-h_addr_list[0];
if (lpAddr)
{
struct in_addr inAddr;
memmove (&inAddr, lpAddr, 4);
sIPAddress = inet_ntoa (inAddr);
if (sIPAddress.IsEmpty())
sIPAddress = _T(Not available);
}
WSACleanup();
return 1;
}
取消
评论