Wie funktionieren gethostbyname()
oder getnameinfo()
im Hintergrund?
#include
#include
#include
/* paddr: Druckt die IP-Adresse im Standard-Dezimalformat aus */
void
paddr(unsigned char *a)
{
printf("%d.%d.%d.%d\n", a[0], a[1], a[2], a[3]);
}
main(int argc, char **argv) {
struct hostent *hp;
char *host = "google.com";
int i;
hp = gethostbyname(host);
if (!hp) {
fprintf(stderr, "Adresse von %s konnte nicht ermittelt werden\n", host);
return 0;
}
for (i=0; hp->h_addr_list[i] != 0; i++)
paddr((unsigned char*) hp->h_addr_list[i]);
exit(0);
}
Ausgabe für google.com:
74.125.236.198
74.125.236.199
74.125.236.206
74.125.236.201
74.125.236.200
74.125.236.196
74.125.236.193
74.125.236.197
74.125.236.194
74.125.236.195
74.125.236.192
Ausgabe für www.google.com:
74.125.236.210
74.125.236.209
74.125.236.212
74.125.236.208
74.125.236.211
- Wird das obige Programm eine Überprüfung im Internet durchführen, um in eine IP aufzulösen?
- Warum werden weniger IP-Adressen für www.google.com angezeigt und mehr für einfach google.com?