nsswitchでホスト名を解決する方法は?

nsswitchでホスト名を解決する方法は?

インストールスクリプトの事前実行テストで、ホスト名が127.0.0.1以外の名前で解決されるかどうかをスクリプトでテストしたいと思います。私が知っているツール(dig、nslookup)は具体的にDNSを照会します。私の場合、/ etc / hostsの正しいエントリは有効な設定でした。質問は次のとおりです。

たとえば、pingのようにnsswitch.confを介してフルネーム解決プロセスを実行できる発掘ツール(すでにシステムにいる方が良い)はありますか?

dig my-test-server-that-only-exists-in-etc-hosts 

NXDOMAINを返します。

答え1

SUへの答えはすでにあります。

Bash:検索で/ etc / hostsを含むIPからホスト名を検索する

基本的には

getent ahosts host_name

ここで、ホスト名はユーザーエントリ/etc/hosts(この場合はそのエントリとして解決されます)、またはDNSが解決できるホストです。

マニュアルgetent(1)ページを引用すると、次のようになります。

所有者
キーが指定されていない場合は、sethostent(3)、gethostent(3)、およびendhostent(3)を使用してホストデータベースを列挙します。これはホストの使用と同じです。 1つ以上のキー引数が指定されている場合は、各キーをAF_UNSPECアドレスファミリのgetaddrinfo(3)に連続して渡し、返された各ソケットアドレス構造を列挙します。

関連情報