通常のプログラムがホスト名を解決するのと同じように、ホスト名をIPアドレスに解決するコマンドが必要です。つまり、通常のDNSだけでなく、mDNS(.local
)とを考慮する必要があります。したがって、およびは、3つのツールすべてが通常のDNSのみを使用し、アドレスを確認しないため/etc/hosts
除外されます。host
dig
nslookup
.local
Linuxでは、getent
次のコマンドを使用します。まさに私が欲しいもの。ただし、getent
OS Xには存在しません。
Mac OS Xに対応する製品はありますかgetent
?私は以下をgetaddrinfo
使用していくつかの行を書くことができることを知っています。
ありがとうございます!
答え1
dscacheutil
私はこれがあなたが探しているものだと思います。キャッシュ、/ etc / hosts、mDNS(.local用)をサポートします。
dscacheutil -q host -a name foo.local
別のオプションはdns-sd
dns-sd -q foo.local
答え2
(確立されたuser422009の返信)
これをあなたの~/.bash_profile:
getent() {
[ "$1" == "hosts" ] && shift
for x
do
echo $x $(dscacheutil -q host -a name $x | awk '/^ip_address/{print $NF}')
done
}
次に、新しい端末を開くか、bash_profileをインポートします。
. ~/.bash_profile
それはうまくいきます:
$ getent hosts www.example.com
www.example.com 93.184.216.34