Como determinar o nome do host de um endereço IP em uma rede Windows?

84

Minha LAN possui 50 hosts do Windows. Na linha de comando do Windows, tento executar ping para obter o endereço IP de uma máquina Windows em execução.

A questão é como obter o nome de host de um endereço IP específico no mesmo grupo de trabalho do Windows?

Outra pergunta é como saber o nome do host da máquina Windows em uma caixa do Linux se eu tiver um endereço IP? Qual comando você usa? Eu tenho um host executando o Kubuntu 9.04.

billyduc
fonte

Respostas:

92

Se você deseja determinar o nome de uma máquina Windows sem DNS, tente Nbtstat . Mas isso só funcionará no Windows:

Por exemplo,

NBTSTAT -A 10.10.10.10

No Linux, você deve tentar o nmblookup que faz quase o mesmo.

Phil Swiss
fonte
3
O NBTSTAT depende do carregamento e da execução do NetBIOS, que geralmente é desativado em organizações maiores com sua própria infraestrutura de AD e DNS. Provavelmente uma suposição segura aqui, embora com um grupo de trabalho de 50 máquinas.
# 2
Obrigado Decca, o nbtstat é rock btw ... eu falhei na caixa Linux nmblookup 192.168.1.92 consultas 192.168.1.92 em 192.168.1.255 name_query não conseguiu encontrar o nome 192.168.1.92
billyduc
8
O comando nmblookup -A 192.168.1.92 está trabalhando com sucesso
billyduc
1
nmblookupfaz parte do pacote Samba da minha distribuição. Não sei por nmblookupque isso faz o ip para nome do host faz parte do Samba (código do sistema de arquivos em rede e código dos serviços de impressão).
Trevor Boyd Smith
60

O método tecnicamente preferível é digitar nslookup <ip address>

Na verdade, o NSLOOKUP solicita ao servidor DNS o endereço IP do nome do host. O ping usará o cache do resolvedor de DNS local , que pode estar incorreto até você liberar.

Izzy
fonte
Isso pressupõe que ele tenha um servidor DNS interno para resolução de nomes. Além disso, o op afirmou que ele queria resolver um nome de host do ip, então eu estou assumindo que ele não sabe o nome do host para começar. Além disso, no que me diz respeito, não há maneira correta ou incorreta de fazê-lo. existem vários métodos, cada um deles válido e cada um dos quais pode produzir resultados diferentes.
31511 johqwerty
3
Não. Usar o PING não é a melhor maneira de fazê-lo. Você pode fazer um nslookup <ip address>e ele resolverá a pesquisa inversa.
Izzy
1
Você se refere ao NSLOOKUP como se fosse uma ferramenta interna de resolução ... De qualquer forma, o NSLOOKUP é a opção tecnicamente superior.
Izzy
1
Mas ele está correto. O nslookup é útil apenas nesse cenário se houver um servidor DNS (interno ou externo) que possua entradas de zona de pesquisa inversa para os hosts do OP e as máquinas do OP estiverem configuradas para usar esse servidor DNS.
Maximus Minimus
3
@ Izzy Registrei-me como um novo membro apenas para agradecer a dica de NSLOOKUP, Izzy. De todas as coisas acima, é a única que funcionou para mim. Graças um milhão. #Jeff Moden
Jeff Moden
9

No Windows, você pode usar ping -a x.x.x.xpara tentar resolver o nome do host a partir do endereço IP .

joeqwerty
fonte
1
O PING pode resultar em resultados imprecisos, especialmente se você estiver trabalhando ativamente em problemas de DNS.
Izzy
o op não declarou que ele estava trabalhando em questões de DNS, ele sugeriu que estava trabalhando em problemas de resolução de nomes. O DNS não é o único mecanismo de resolução de nomes no Windows e não é um mecanismo obrigatório de resolução de nomes. ele também afirmou que está trabalhando em um ambiente de grupo de trabalho, então não assumi que ele tinha uma infraestrutura de DNS em vigor.
31289 joeqwerty
DNS é realmente necessário para o Active Directory. Simplesmente não temos informações suficientes para dizer algo definitivo sobre isso.
Maximus Minimus
@mh: sim, mas novamente ... não há informações suficientes do op.
31410 JoJoQwerty
obrigado a todos! Não tenho o serviço Active Directory, tenho um servidor DNS resolvido para dhcp, mail, servidor web em minha empresa, a maioria dos funcionários está executando o Windows XP e usando o mesmo GRUPO DE TRABALHO.
billyduc
6

Existem algumas maneiras de fazer isso no Windows e no Linux. Por exemplo,

  1. nslookup : a maneira clássica de encontrar o endereço IP de um nome de host ou vice-versa.
  2. ipconfig ou ifconfig com base em se você está executando no Windows ou Unix
  3. hostname -i no Linux

Ref: Várias maneiras de obter o endereço IP do nome do host no Linux e Windows

Sreedhar
fonte
4

Para usuários de mac smbutil -v status -ae x.x.x.xfunciona. Você também pode usar arp -apara obter endereços mac para tudo na sua rede.

Balupton
fonte
1

nmblookup pode não funcionar bem para hosts Linux, porque o nome NetBIOS está obsoleto. E no Windows, é limitado à rede local.

Uma corrida
fonte
2
Não, isto está errado. O Netbios (infelizmente) não está obsoleto e é realmente necessário para várias funções vitais do Active Directory.
precisa
Alguém pode apontar como em quais casos o AD DS ainda depende do Netbios? Houve conversas que o Netbios provavelmente seria privado desde o Windows Server 2003. De alguma forma, ainda é necessário agora nas redes AD DS do Windows Server 2012?
Mikhail
Infelizmente, sim: serverfault.com/questions/676867/…
Massimo