梅本です。

>>>>> On Fri, 11 Nov 2022 22:10:11 +0900
>>>>> NISHIMURA Yutaka <iscr...@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 の順で出力します。

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




Reply via email to