Gethostbyname

Was muss ich an diese C-Funktion übergeben (gethostbyname) um etwas Sinnvolles zurückzubekommen? Ein Rechnername im Netzwerk (auch der eigene Rechner) führt bei mir immer zu einem Fehler.

–Jan Vornberger.

Was muss ich an diese C-Funktion übergeben (gethostbyname) um
etwas Sinnvolles zurückzubekommen? Ein Rechnername im Netzwerk
(auch der eigene Rechner) führt bei mir immer zu einem Fehler.

–Jan Vornberger.

Du solltest eine Hostent Structure zurück bekommen
wenn
Im localen Netzwerk: Du den Rechnernamen übergibst
Sonst den vollständigen Domain Namen z.B. www.wer-weiß-was.de

Wenn das nicht klappen sollte probiers mit der IP-Adresse in dem
Du sie vorher in eine inet_addr-Structure umwandelst und
dann der funktion übergibst.
Oder probiers gleich mit gethostbyaddr…
cu
Dennis
„DerBrain“

Nur so als Beispiel dürfte ziemlich Analog funktionieren. Aber schau auch mal die Fehlermeldung genauer an eventuell liegt es daran das der DNS irgendwie nicht richtig ist, steht aber relativ genau in der MSDN.


CString strResult;
CString cstrIP;
unsigned int addr;
struct hostent *hp;
char * cDummy;

if (!AfxSocketInit())
{
// AfxMessageBox(IDP_SOCKETS_INIT_FAILED);

}

// ZU ERLEDIGEN: Fügen Sie hier Ihre Behandlungsroutine für Eigenschaften hinzu

//itoa(i,buffer,10);
//cstrIP+=(CString) buffer;
try
{
addr = inet_addr(m_cstrIP);
hp = gethostbyaddr((char *)&addr,4,AF_INET);
//cDummy=hp->h_name;
strResult=hp->h_name;
}
catch(…)
{
strResult="Fehler für ";
strResult+=m_cstrIP;
}
return strResult.AllocSysString();