Ik heb een vraag over het omzetten van een hostname in een ip adres. Ik gebruik hiervoor de volgende code, maar ik krijg bij de functie gethostbyname telkens een NULL als return. Hoe kan dit?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| AnsiString __fastcall TMainForm::ResolveHostToIP(AnsiString strHost)
{
AnsiString strRet = "";
unsigned long ulIP;
hostent* phostent;
LPSTR szAddr;
struct in_addr inetAddr;
phostent = gethostbyname(strHost.c_str());
if (phostent == NULL)
{
strRet = "127.0.0.1";
return strRet;
}
ulIP = *(DWORD*)(*phostent->h_addr_list);
inetAddr.s_addr = ulIP;
szAddr = inet_ntoa(inetAddr);
strRet = szAddr;
return strRet;
} |