next up previous contents
Next: Adreßauflösung Up: 3.3 Anwendungsentwicklung Previous: 3.3.4 Senden und Empfangen

Namensauflösung

Die Funktion gethostbyname() bleibt unverändert, wie auch die hostent-Struktur zu der die Funktion einen Zeiger zurückliefert. Bestehende Anwendungen bekommen beim Aufruf dieser Funktion weiterhin IPv4-Adressen (also A-Records, falls das DNS gefragt wird) zurückgeliefert. Zwei Änderungen erlauben die Unterstützung von IPv6-Adressen:

1.
Eine neue Funktion gethostbyname2():
struct hostent *gethostbyname2(const char *name , int af );
Der neu hinzugekommene Parameter af bezeichnet die gewünschte Adreßfamilie AF_INET oder AF_INET6.
2.
Eine neue Resolver-Option RES_USE_INET6, die entweder als Umgebungsvariable (Bourne- und Kornshell: export RES_OPTIONS=inet6), in der Resolver-Konfigurationsdatei /etc/resolv.conf als options inet6 oder in der Applikation mit
  res_init();
  _res.options |= RES_USE_INET6;
gesetzt werden kann.

Ist die Option RES_USE_INET6 gesetzt, werden immer 128-Bit-Adressen zurückgeliefert, wenn nötig IPv6-mapped IPv4-Adressen.

Ist die Option RES_USE_INET6 gesetzt, wird auch bei Aufruf der gethostbyname()-Funktion zuerst nach einem AAAA-Record gesucht, danach nach einem A-Record.

Kann eine Applikation keine 128-Bit-Adressen verarbeiten, darf diese Option nicht aktiviert werden.



Copyright Munich Network Management Team