Re: /etc/host.conf

From: Hajimu UMEMOTO <ume_at_mahoroba.org>
Date: Fri, 11 Nov 2022 13:56:59 UTC
梅本です。

>>>>> On Fri, 11 Nov 2022 22:10:11 +0900
>>>>> NISHIMURA Yutaka <iscream@nugae.org> said:

iscream> 私はnsswitch.conf 通り検索ってなるとgetent だと思い込んでましたので
iscream> % getent hosts www.example.jp

iscream> とか言う感じでやってますが getent hosts と getaddrinfo となにか違うんでしょうか?

getent(1) もありましたね。

getent(1) は伝統的な getXXX(3) を呼び出します。hosts の場合は
gethostbyname(3) と IPv6 の場合は gethostbyname2(1) を呼び出し、それら
の結果を出力します。

getaddrinfo(1) は getaddrinfo(3) を呼び出します。今時のアプリの多くは
getaddrinfo(3) を呼び出すようになっていますから、実際のアプリを使った
場合と同じ検索を行うことができます。

例えば、IPv6 と IPv4 のどちらを優先するかは ip6addrctl(8) で設定できま
すが、getaddrinfo(1) の出力順はこの設定に従います。
getent(1) は IPv6 → IPv4 の順で出力します。

--
梅本 肇
ume@mahoroba.org  ume@FreeBSD.org
プログラムは書いた人の意図ではなく書かれた通り動く  I hate Modula-3 :-)