Odpověď na názor

Odpovídáte na názor k článku Evoluce DNS v Linuxu aneb od resolv.conf k systemd-resolved. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 18. 6. 2025 10:11

    Ondřej Caletka
    Zlatý podporovatel

    > Až příště zavoláte gethostbyname…

    Prosím, už ne. Je rok 2025, už celkem dlouho je v manuálové stránce gethostbyname(3) hned na začátku napsáno:

    > The getaddrinfo(3) and getnameinfo(3) functions are preferred over the gethostbyname(), gethostbyname2(), and gethostbyaddr() functions.

    gethostbyname(3) je IPv4-only funkce a existuje jen kvůli kompatibilitě velmi starých aplikací. Psát použití této funkce jako příklad v článku v roce 2025 je vyloženě škodlivé. Ostatně i funkce getaddrinfo(3) je zastaralá v tom smyslu že používá synchronní API, ale aspoň podporuje jak IPv4 tak i IPv6 a seřadí odpovědi podle preferencí nastavených v /etc/gai.conf.

    Lepší příklad (v Pythonu, verze v C je v manuálové stránce getaddrinfo(3)):

    >>> import socket
    >>> socket.getaddrinfo("www.seznam.cz", "https", type=socket.SOCK_STREAM)
    [(<AddressFamily.AF_INET6: 30>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('2a02:598:2::1222', 443, 0, 0)), (<AddressFamily.AF_INET6: 30>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('2a02:598:a::79:222', 443, 0, 0)), (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('77.75.79.222', 443)), (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('77.75.77.222', 443))]