Jak ustalić nazwę hosta na podstawie adresu IP w sieci Windows?

84

Moja sieć LAN ma 50 hostów Windows. W wierszu polecenia systemu Windows próbuję wykonać polecenie ping, aby uzyskać adres IP uruchomionego komputera z systemem Windows.

Pytanie brzmi: jak uzyskać nazwę hosta określonego adresu IP w tej samej grupie roboczej systemu Windows?

Innym pytaniem jest, jak poznać nazwę hosta komputera z systemem Windows z Linux-a, jeśli mam adres IP? Jakiego polecenia używasz? Mam jednego hosta z systemem Kubuntu 9.04.

billyduc
źródło

Odpowiedzi:

92

Jeśli chcesz określić nazwę komputera z systemem Windows bez DNS, powinieneś wypróbować Nbtstat . Ale to będzie działać tylko w systemie Windows:

Na przykład,

NBTSTAT -A 10.10.10.10

W systemie Linux powinieneś wypróbować nmblookup, który robi prawie to samo.

Phil Swiss
źródło
3
NBTSTAT polega na tym, że NetBIOS jest ładowany i uruchomiony, co jest często wyłączone w większych organizacjach z własną infrastrukturą AD i DNS. Prawdopodobnie jest to bezpieczne założenie dla grupy roboczej złożonej z 50 osób.
GAThrawn
Dzięki, Decca, nbtstat to rock btw ... Nie udało mi się na Linux-ie nmblookup 192.168.1.92 odpytanie 192.168.1.92 na 192.168.1.255 nazwa_zapytania nie znalazło nazwy 192.168.1.92
billyduc
8
Polecenie nmblookup -A 192.168.1.92 działa z powodzeniem
billyduc
1
nmblookupjest częścią pakietu Samby mojej dystrybucji. Nie jestem pewien, dlaczego nmblookupIP do nazwy hosta jest częścią Samby (kod systemu plików w sieci i kod usług drukowania).
Trevor Boyd Smith
60

Technicznie preferowaną metodą jest pisanie nslookup <ip address>

NSLOOKUP faktycznie pyta serwer DNS o adres IP nazwy hosta. Ping użyje lokalnej pamięci podręcznej Resolver DNS , która może być niepoprawna do momentu opróżnienia.

Izzy
źródło
zakładając, że ma on wewnętrzny serwer dns do rozpoznawania nazw. Op również stwierdził, że chce rozwiązać nazwę hosta z ip, więc zakładam, że nie zna nazwy hosta na początek. również, jeśli o mnie chodzi, nie ma prawidłowego lub niewłaściwego sposobu na zrobienie tego. istnieje wiele metod, z których każda jest poprawna i każda z nich może dawać różne wyniki.
joeqwerty
3
Nie. Korzystanie z PING nie jest najlepszym sposobem na zrobienie tego. Możesz to zrobić, nslookup <ip address>a to rozwiąże wyszukiwanie wsteczne.
Izzy
1
Odwołujesz się do NSLOOKUP jak do jakiegoś wewnętrznego narzędzia do rozwiązywania problemów ... Tak czy inaczej, NSLOOKUP jest technicznie lepszą opcją.
Izzy
1
Ale on ma rację. nslookup jest użyteczny tylko w tym scenariuszu, jeśli istnieje serwer DNS (wewnętrzny lub zewnętrzny), który ma wpisy stref wyszukiwania wstecznego dla hostów PO, a maszyny OP są skonfigurowane do korzystania z tego serwera DNS.
Maximus Minimus,
3
@Izyzy Zarejestrowałem się jako nowy członek, aby podziękować za wskazówkę dla NSLOOKUP, Izzy. Spośród wszystkich powyższych rzeczy, to jedyna, która działała dla mnie. Stukrotne dzięki. --Jeff Moden
Jeff Moden
9

W systemie Windows możesz użyć ping -a x.x.x.xpróby rozwiązania nazwy hosta z adresu IP .

joeqwerty
źródło
1
PING może powodować niedokładne wyniki, szczególnie jeśli aktywnie pracujesz nad problemami DNS.
Izzy
operacja nie stwierdziła, że ​​pracuje nad kwestiami dns, sugerował, że pracuje nad problemami z rozwiązywaniem nazw. dns nie jest jedynym mechanizmem rozpoznawania nazw w systemie Windows i nie jest wymaganym mechanizmem rozpoznawania nazw. stwierdził również, że pracuje w grupie roboczej, więc nie przyjąłem żadnych założeń dotyczących posiadania infrastruktury dns.
joeqwerty
DNS jest faktycznie wymagany dla Active Directory. Po prostu nie mamy wystarczających informacji, aby powiedzieć coś ostatecznego na ten temat.
Maximus Minimus,
@ mh: tak, ale znowu ... za mało informacji z op.
joeqwerty
Dziękuję wam wszystkim ! Nie mam usługi Active Directory, mam jedno rozwiązanie DNS dla dhcp, poczty, serwera WWW w mojej firmie, większość hostów pracujących pracuje pod Windows XP i używa tego samego WORKGROUP.
billyduc
6

Istnieje kilka sposobów, aby to zrobić zarówno w systemie Windows, jak i Linux. Na przykład,

  1. nslookup : klasyczny sposób na znalezienie adresu IP z nazwy hosta lub odwrotnie.
  2. ipconfig lub ifconfig w zależności od tego, czy korzystasz z systemu Windows, czy Unix
  3. nazwa hosta -i w systemie Linux

Ref: Wiele sposobów uzyskania adresu IP z nazwy hosta w systemie Linux i Windows

Sreedhar
źródło
4

Dla użytkowników komputerów Mac smbutil -v status -ae x.x.x.xdziała. Możesz także użyć arp -ado uzyskania adresów mac dla wszystkiego w sieci.

balupton
źródło
1

nmblookup może nie działać dobrze w przypadku hostów Linux, ponieważ nazwa NetBIOS jest przestarzała. A w systemie Windows jest ograniczony do sieci lokalnej.

Bieg
źródło
2
Nie, to jest źle. Netbios (niestety) nie jest przestarzały i faktycznie jest wymagany do wielu ważnych funkcji Active Directory.
HopelessN00b
Czy ktoś może wskazać, w jakich przypadkach AD DS nadal polega na Netbios? Odbyły się rozmowy, że Netbios musiał być deprecjonowany od czasów Windows Server 2003. Czy nadal jest to w jakiś sposób wymagane w sieciach AD DS systemu Windows Server 2012?
Michaił
Niestety tak: serverfault.com/questions/676867/…
Massimo