/etc/hosts のホスト検索を尊重します。

/etc/hosts のホスト検索を尊重します。

hostと同じユーティリティを使用するdigと、ホスト名に対応するIPアドレスを表示できます。

getentクエリやその他のNSSデータベースに使用できる/etc/hostsユーティリティもあります。

私は定義された場所に関係なくホスト名を解決するための便利な標準ユーティリティ(Debianで利用可能)を探しています。

これは、以下とある程度同じでなければなりません。

ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'

答え1

問題がこれらの名前を解決するためにipv6を使用したくない場合は、getentにipv4のみを使用するように依頼してください。これにより、すべてのipv4アドレスが一覧表示されます。

giuseppe@blatta:~$ getent ahostsv4 www.google.com | cut -d' ' -f1 | sort -u
173.194.40.80
173.194.40.81
173.194.40.82
173.194.40.83
173.194.40.84

答え2

問題は、ホスト名を解決できる複数のAPIがあることです(例:)。gethostbynameそのgetaddrinfoうちのinet_ptonいくつかは複数のアドレスを返すか、必要なアドレスの種類を照会することができます。

ポータブルな方法が欲しいなら一つIPv4アドレスであれば可能です。

perl -MSocket -le 'print inet_ntoa inet_aton shift' www.google.com

答え3

私が知る限り、あなたが望むことをする唯一のコマンドは次のとおりです。

http://linux.die.net/man/1/resolveip

しかし、これはmysql-serverにのみ提供されているので、どこにでもインストールするのに適していない可能性があります。

答え4

(この回答は、コンピュータにrootアクセス権がある場合にのみ適用されます。)

私もこれを悩んで走ることを標準化しました。DNS私のすべてのコンピュータで。 Dnsmasqは軽量DNSキャッシュです。追加の利点として、DNSを介してコンテンツを提供します/etc/hosts

関連情報