Ferramenta de resolução de nomes de domínio não específica para DNS [duplicado]

2

host , dig e nslookup podem ser usados para procurar nomes DNS na linha de comando. No entanto, eles consultam os nomes diretamente do servidor DNS, em vez de usar nsswitch para resolver nomes de host. Isso significa que / etc / hosts e mDNS não são usados.

Existe uma ferramenta de linha de comando que procura o nome pela maneira padrão (honrando o mDNS e / etc / hosts)?

Há um pergunta semelhante no Ask DIfferent , mas parece ser específico para o OS X.

    
por Kritzefitz 16.08.2014 / 15:26

1 resposta

6

Você pode usar getent para consultar vários bancos de dados, incluindo hosts.

$ getent hosts <hostname>

Se o seu servidor tiver um endereço V6, mas você quiser um endereço V4, talvez seja necessário usar o banco de dados ahostsv4.

$ getent ahostsv4 www.google.com

Como uma ferramenta adicional, você poderia tentar chamar gethostbyname() em um programa. C ficaria bem, mas aqui está um script 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";
}

Se um host na linha de comando tiver apenas um único IP, ele será impresso abaixo.

    
por 16.08.2014 / 19:44

Tags