私の端末はそのまま出力されます。
$ getent hosts example.org
2001:500:88:200::10 example.org
$ getent ahosts example.org
192.0.43.10 STREAM 43-10.any.icann.org
192.0.43.10 DGRAM
192.0.43.10 RAW
私は彼ら全員(少なくとも所有者)はIPv4アドレスとIPv6アドレスの両方を印刷する必要があります。なぜ他のアドレスタイプを印刷するのですか?
$ uname -srvmpio
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:17:36 UTC 2012 i686 i686 i386 GNU/Linux
編集する:関連があるようです。このバグレポート。
答え1
getent hosts
両方ともgetent ahosts
IPv4とIPv6アドレスを印刷できますが、印刷するアドレスを異なる方法で決定します(これは2つの異なるコマンドを使用することです)。
hosts
着信電話gethostbyname2
(IPv6バリアントをサポートgethostbyname
)。行動はハードコーディング:IPv6アドレスを探し、IPv4アドレスがない場合は検索します。
ahosts
着信電話getaddrinfo
。この関数は指定された名前のすべてのプロトコルを列挙するので、同じ呼び出しでIPv4アドレスとIPv6アドレスの両方を返すことができます。返される内容は、次の設定によって決定されます。/etc/gai.conf
。多くのアプリケーションは依然としてIPv6で困難を抱えているため、ほとんどのディストリビューションはデフォルトでIPv4を優先し、明示的に要求した場合にのみIPv6を使用します。
Stack Exchangeに関するahosts
有用な資料は次のとおりです。gai.conf