УМВР.РУ

PowerShell: Получить DNS имя из списка IP адресов

Просмотров: 157Комментарии: 0
How-ToPowerShell
Тут по роду службы получил ответственное задание - отлукапить более 100 IP адресов.

подход визуально прост берем IP, и пихаем в консоль команду:

nslookup 127.0.0.1

Вывод нужно распарсить и записать в файл. Итого на одну запись порядка 30 секунд, а их 100. И для того чтобы все обойти потребуется около часа. Как по мне - непозволительная роскошь.

Я ленив настолько, что для решения этой задачи мне потребовалось не более 10-ти минут. Мне помог PowerShell.

Используя PowerShell И .Net был написан следующий код:

Workflow Get-DNSNames([string[]]$IPAddresses){
foreach -parallel ($IP in $IPAddresses){
try{
@{$IP = $(([system.net.dns]::GetHostByAddress($IP)).hostname)}
}catch{
@{$IP = "N/A"}
}
}
}
$List = Get-DNSNames -IPAddresses $(Get-Content "C:\IPAddresses.txt").Split("[\r\n]")
$List | Out-File "C:\IPAddresses_Complete.txt"

Обратите внимание, что Get-DNSNames не функция, а воркфлоу, в его плюсы входит возможность параллельного выполнения для оператора foreach, что может увеличивать скорость выполнения скрипта в 5 раз.

Собственно и все!

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question


Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

     

  

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)