Яка утиліта командного рядка в Windows для зворотного пошуку DNS?


246

Чи є вбудований інструмент командного рядка, який здійснюватиме зворотний пошук DNS в Windows? Тобто щось подібне<toolname> w.x.y.z => mycomputername

Я спробував:

  • nslookup: начебто, лише вперед.
  • host: не існує
  • dig: також не існує.

Я знайшов " Що таке зворотна утиліта командного рядка DNS? " За допомогою пошуку, але це спеціально шукає утиліту * nix, а не Windows.


5
Це питання слід відредагувати, щоб сказати, що він не дуже шукає специфічного для DNS рішення. Відхилені відповіді дають таку відповідь, але питання полягало у тому, що вам насправді потрібно щось, що шукає NetBIOS імена, а не DNS.
Бармар

Відповіді:


237
ping -a w.x.y.z

Слід вирішити ім'я з IP-адреси, якщо зона зворотного пошуку була правильно встановлена. Якщо в зоні зворотного пошуку немає запису для запису, -aзаповіт буде просто пінг без імені.


3
Це працювало краще, ніж nslookup, оскільки конфліктуюча машина знаходиться на іншому домені. Дуже дякую!
вранці

4
у nslookup ви також можете спробувати: set type = PTR <enter> wxyz <enter>
Пітер

2
@abstrask має найповнішу відповідь
vinnyjames

7
Це працює , але насправді це неправильний інструмент для роботи. Ping використовується для вимірювання затримки в мережі, він виконує пошук імені (або IP) просто як побічний ефект його основного призначення.
Массімо

3
@ Массімо - враховуючи обмеження оригінального питання, що б ви запропонували замість цього? Ping дозволить вирішити імена DNS та netbios, що робить його хорошим першим інструментом, якщо вам просто потрібно щось швидко.
Пітер

114
nslookup <ip>

Робить те, що ви шукаєте. Він підкаже сервер, про який ви запитуєте, та результат.

Наприклад:

c:\>nslookup 192.168.101.39
Server: dns1.local
Address: 192.168.101.24

Name: enigma.local
Address: 192.168.101.39

7
Це не вдалось із повідомленням "<DC> не можу знайти wxyz: неіснуючий домен", і я не міг зрозуміти, чому. Я спробував відповідь @ Петра, і виявив, що машина, яка суперечить, знаходилась на іншому домені.
вранці

7
Не вдалося, оскільки nslookup піклується лише про DNS, тоді як імена в Windows можуть і вирішуються іншими способами, якщо DNS недостатньо.
Массімо

76

Проблема з "ping" полягає в тому, що це не строго інструмент пошуку сервера імен (наприклад, nslookup) - наприклад, якщо ви вводите ім'я хоста, його можна вирішити до IP-адреси декількома методами: пошук DNS, пошук хост-файлів, WINS (не дай бог) або NetBIOS мовлення. Він також може повернути потенційно застарілий кешований результат.

Порядок випробування методів залежить від конфігурації TCP / IP клієнта та прапор типу вузла:

  • B-вузол (1): Трансляція
  • P-вузол (2): Peer (WINS)
  • M-вузол (4): Змішаний (трансляція, потім WINS)
  • H-вузол (8): гібрид (WINS, потім трансляція)

Щоб побачити тип вузла поточного комп’ютера:

C:\>ipconfig /all | find "Node Type"
Node Type . . . . . . . . . . . . : Hybrid

Якщо метод роздільної здатності не викликає занепокоєння, використовуйте

ping -a w.x.y.z

або

nslookup w.x.y.z

як завгодно. Якщо вам потрібно бути впевненим, ви запитуєте свій DNS-сервер на правильне ім’я, використовуйте nslookup .

Дивитися також


31

Використовуйте NSLOOKUP з параметром "-type = ptr" для запиту IP-адреси, синтаксису:

nslookup -type=ptr 1.2.3.4

Потім також надрукується запис "in-addr.arpa" (навіть коли його не знайдено), наприклад:

C:\Users\UserName>nslookup -type=ptr 8.8.8.8
Server:  MyDnsServerName
Address:  X.X.X.X

Non-authoritative answer:
8.8.8.8.in-addr.arpa    name = google-public-dns-a.google.com

Порівняно з нижчою відповіді на точність при використанні NSLOOKUP за IP-адресою без параметра типу:

C:\Users\UserName>nslookup 8.8.8.8
Server:  MyDnsServerName
Address:  X.X.X.X

Name:    google-public-dns-a.google.com
Address:  8.8.8.8

2
Якщо ви хочете використовувати інтерактивний nslookup, тоді в запиті nslookup введіть "встановити q = ptr", а потім введіть IP-адресу в наступному рядку. Якщо ви божевільна стара школа, як я, то ви досі не усвідомлювали, що вам більше не доведеться шукати IP назад, наприклад, "1.0.0.127.in-addr.arpa".
Тодд Уілкокс

4
Не потрібно -type=ptrабо set q=ptrвзагалі - nslookupдостатньо розумний, щоб регенезувати IP-адресу та зробити зворотний пошук замість прямого
abstrask

1
Насправді -type = ptr необхідний для правильної перевірки зворотного пошуку, оскільки він друкує більш точний результат, ніж nslookup лише з IP-адресою. Набагато краще мати надрукований фактичний запис in-addr.arpa (також коли його не знайдено), щоб допомогти з налагодженням або просто уточнити, що відбувається.
Тоні Уолл

14

nslookup зробить зворотний DNS для Windows так само, як це може зробити це в Linux.

Звичайно, не існує зворотного запису для кожної ip адреси


2
Добре, що не всі хости будуть створені для них записом PTR
Rowland Shaw

2
Зауважте, що nslookup у Linux, BSD та Windows робить різні речі та є різними програмами.
Гарна людина

1
Якщо PTR не існує, ви можете зателефонувати за IP для отримання додаткової інформації ..... проблема не
надсилається з windoze


6

Ви можете використовувати стандартну команду NSLOOKUP:

nslookup 123.123.123.123

Для отримання результату має бути зареєстрований запис PTR для відповідної IP-адреси.


5

nslookup зробить зворотні пошуки у Windows.

C:\>nslookup star.slashdot.org

Server:  my-dns-server
Address:  10.242.0.1

Name:    star.slashdot.org
Address:  216.34.181.48

C:\>nslookup 216.34.181.48

Server:  my-dns-server
Address:  10.242.0.1

Name:    star.slashdot.org
Address:  216.34.181.48

4

9 відповідей, і ніхто не сказав, як повернути пошук за допомогою dig? Це найкраще

копати -x wxyz

Крім того, ви можете додати "+ short" для використання в bash-циклах, скриптах тощо .... вперед або назад :)


3
Ніхто не згадав, digяк він не постачається з Windows. Питання ОП навіть це вказує.
jscott

3
digяк правило, найкращий вибір усунення несправностей з DNS. Я думаю, що, безумовно, є користь запропонувати кращий інструмент, навіть якщо він не постачається з Windows. (Доступно у версіях Windows за адресою isc.org/software/bind )
Håkan Lindqvist

4

Під Windows ....

Стандартний ping НЕ повертає ім'я хоста IP-адреси

NSLookup можна використовувати для пошуку цієї інформації, якщо DNS налаштований належним чином

Процедура така:

Відкрити підказку DOS

NSLookup

тип набору = ptr

а Б В Г

Результати відображатимуться із зворотною адресою сервера DNS та назви хоста


1

Є ще один спосіб. Зворотну IP-адресу та використання nslookup

nslookup -type=PTR 4.3.2.1.in-addr.arpa

для вирішення адреси 1.2.3.4


1
nslookup -type=PTR 4.3.2.1.in-addr.arpaОднак вам доведеться зробити це, щоб насправді це працювало.
Хокан Ліндквіст

1

Якщо nslookup, dig, hostне існує, спробуйте наступне:

getent hosts google.de | awk '{ print $1 }'

Працює, наприклад, на екземплярах docker AWS ec2 (у яких насправді нічого не встановлено)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.