PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gethostbyname() ?



pumpk1n
11-07-2001, 23:09
Hi !
hat hier jemand eine erklärung, warum der folgende codschnipsel IMMER die meldung couldn't resolve hostname erzeugt ?
das uebergebene argument c_host ist ein pointer auf char, ein hostname oder eine ipaddresse z.b. 127.0.0.1 oder www.web.de (http://www.web.de) oder sowas

...
struct hostent *hstent;
...
if ((hp = gethostbyname(c_host)) == NULL)
{
printf("couldn't resolve hostname : %s", hstent);
exit(1);
}
...
sockaddr_server.sin_addr.s_addr = inet_addr(c_host);
...

warum funktioniert das net?? ich dreh noch durch.. oder wie kann man sonst noch hostnamen in ipadressen auflösen ?
grüsse !
Pickel

jgbauman
11-07-2001, 23:26
Probier mal folgendes Stueck Code.
Das sollte eigentlich funktionieren.
Wenn nicht, hilft vielleicht die Fehlermeldung von herror() weiter.


#include <netdb.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc,char *argv[]) {
struct hostent *hp;

if (argc!=2) return 1;
if ((hp = gethostbyname(argv[1])) == NULL) {
herror("error:");
printf("couldn't resolve hostname : %s\n", argv[1]);
exit(1);
}
printf("hostname : %s\n", hp->h_name);
return 0;
}