非特定于 DNS 的域名解析工具

非特定于 DNS 的域名解析工具

hostdig并可nslookup用于从命令行查找 DNS 名称。但是,它们直接从 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,则会在下面打印。

相关内容