Поиск по сайту:

Новый nslookup: Resolve-DnsName


Nslookup — это инструмент командной строки для разрешения DNS-имен. Resolve-DnsName — современная версия nslookup. В этом блоге я собираюсь показать, как использовать Resolve-DnsName для запроса DNS-имен хостов и многого другого.

Стандартный запрос

Чтобы выполнить стандартный запрос, просто выполните команду и укажите имя хоста. Форматирование таблицы не обязательно, но полезно.

Resolve-DnsName active-directory.ru | Format-Table -AutoSize

Запрос без файла хоста

Помните: ваш хост сначала запросит файл хостов и кэш клиента DNS. Если и только если файл хостов и кэш не вернут результата, будет выполнен запрос к DNS-серверу. Чтобы этого избежать, запустите Resolve-DnsName с параметром -NoHostFile.

Resolve-DnsName active-directory.ru -NoHostsFile

Запрос в режиме только кэша

Чтобы это продемонстрировать, я очищу кэш клиента DNS, а затем попробую выполнить запрос к active-directory.ru. Это должно привести к ошибке. Ура!

Clear-DnsClientCache
Resolve-DnsName active-directory.ru -CacheOnly

Укажите DNS-сервер

Команда Resolve-DnsName без любых параметров будет обращаться к вашему первичному DNS-серверу, который настроен в параметрах вашей сетевой карты. Параметр -Server позволяет указать другие DNS-серверы.

Resolve-DnsName active-directory.ru -Server 8.8.8.8 | Format-List

Запрос на записи

Используйте параметр Type для запроса конкретных записей.

MX-записи (почтовый сервер)

Resolve-DnsName cnn.com -Type MX

AAAA Записи (только IPv6)

Resolve-DnsName facebook.com -Type AAAA | Format-List

Подожди минутку. Ты это заметил? Нет? Тогда посмотри еще раз на IPv6-адрес facebook. 🙄 Они не оставили ничего на удачу.

Только LLMNR

Чтобы использовать только разрешение имен многоадресной рассылки Link Local, используйте параметр LlmnrOnly. LLMNR будет работать только с компьютерами, которые находятся в одной локальной ссылке.

Dc01 и мой компьютер используют одну и ту же связь. Это работает.

Resolve-DnsName dc01 -LlmnrOnly | Format-Table -AutoSize

Sid-500.com не находится по той же ссылке. Это приводит к ошибке.

Тройное разрешение имен

"active-directory.ru","facebook.com","cnn.com" | Resolve-DnsName -Type A | Format-Table -AutoSize

Другой вариант — использовать nslookup с Foreach-Object.

"active-directory.ru","facebook.com","cnn.com" | ForEach-Object {nslookup $_}

Запустите Resolve-DnsName, используя файл с именами хостов.

Используйте Get-Content, чтобы извлечь все имена из вашего файла. Вот мой текстовый файл …

А вот команда для A-записей (IP-адреса IPv4) …

Или все записи NS ...

Разрешение DNS-имен с использованием таблицы TCP-соединений

Хорошо, позвольте мне объяснить следующее немного подробнее. Команда Get-NetTCPConnection предоставляет мне все текущие подключения по IP-адресу. Верно? Хорошо. Итак, я попытался получить все эти подключения, а затем решил поймать одно из них и выполнить команду Resolve-DnsName для него 😉

Get-NetTCPConnection

Это дает мне соединение с 40.77.229.45 и локальным портом 12518. Ну, этого достаточно, чтобы продолжить.

Resolve-DnsName (Get-NetTCPConnection -State Established -LocalPort 12518).RemoteAddress -Type PTR | Select-Object NameHost

О, это Microsoft 😉

Ссылка: https://technet.microsoft.com/de-de/library/jj590781%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396

Связанные ссылки

Для проверки сетевой и доменной связи посмотрите мои статьи "Современная версия ping: Test-Connection" и "Проверка подключения к Active Directory: Test-ComputerSecureChannel."