host
、コマンドラインからDNS名を検索するために使用dig
できます。ただし、ホスト名を解決するnslookup
のではなく、DNSサーバーから直接名前を照会します。nsswitch
これは、/etc/hosts と mDNS が使用されないことを意味します。
標準的な方法(mDNSおよび/ etc / hosts関連)で名前を取得できるコマンドラインツールはありますか?
一つあるAsk Differentに関する同様の質問しかし、OS Xに固有のようです。
答え1
getent
これを使用して、ホストを含むさまざまなデータベースを照会できます。
$ getent hosts <hostname>
サーバーにV6アドレスがありますが、V4アドレスが必要な場合は、ahostsv4 DBを使用できます。
$ getent ahostsv4 www.google.com
追加のツールでgethostbyname()
プログラムを呼び出すことができます。 Cは大丈夫ですが、次はPerlスクリプトです。
#!/usr/bin/perl
use strict;
use warnings;
use Socket;
my $ip = gethostbyname($ARGV[0]);
if (defined $ip) {
my $ip_addr = inet_ntoa($ip);
print "$ip_addr\n";
}
コマンドラインのホストにIPが1つしかない場合は、以下に印刷されます。