Я пытаюсь написать сценарий, который будет принимать входные данные из файла .txt с IP-адресом. Выполните обратный поиск в DNS, чтобы получить имя хоста IP-адреса, а затем экспортируйте эти данные в файл .csv.
Вот что у меня есть на данный момент.
# getting the IP's from the file
$IPADDR = Get-Content "C:\Users\douglasfrancis\Desktop\IP_Test.txt"
ForEach ($IPADDR in $IPADDR)
{
[System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR - MemberType NoteProperty -PassThru | select IP, HostName | sort -property Hostname | export- csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv"
}
Как сейчас созданный файл CSV будет иметь заголовки столбцов, которые я назначил, и последний IP-адрес в списке с его именем хоста. Так что как-то он отбрасывает все остальное.
Если я запустил его с закомментированным файлом export-csv, тогда все IP-адреса отображаются в консоли, но не сортируются по имени хоста.
Раньше я без проблем использовал эту же базовую трубу, поэтому я немного не понимаю, что здесь происходит. Любая помощь была бы потрясающей.
Спасибо,
Взял перерыв и вернулся к нему. Понял, чего мне не хватало, и теперь это работает, как должно.
$SortIP =@()
ForEach ($IPADDR in $IPADDR)
{
$SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
}
$SortIP | sort -property Hostname | export-csv "C:\Users\douglasfrancis\Desktop\ReverseLookup.csv" -NoTypeInformation
в основном добавил переменную «$ SortIP» и использовал «+ = [System.Net.DNS]» вместо «= [System.Net.DNS]», который я использовал ранее, и он делает именно то, что я ожидал.
Это может мне очень помочь. Я пытался добавить в сценарий, чтобы он записывал записи, у которых нет обратного просмотра DNS. В файле, который я запускаю, у меня есть 9 IP-адресов в списке из 2700, у которых нет реверса.
Пока мне удалось записать только удачные. 9 файлов, которые я пытаюсь включить, также получают такую ошибку:
ERROR: Exception calling "GetHostByAddress" with "1" argument(s): "The requested name is valid, but no data of the requested type was found"
ERROR: At C:\SANDBOX\Reverse DNS Pipe fails CSV with SORT.ps1:21 char:48
ERROR: + $SortIP += [System.Net.DNS]::GetHostbyAddress <<<< ($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
ERROR: + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
ERROR: + FullyQualifiedErrorId : DotNetMethodException
ERROR:
Это сценарий, который я запускаю:
# getting the IP's from the file
$IPADDR = Get-Content "C:\SANDBOX\inputips.txt"
$SortIP =@()
foreach ($IPADDR in $IPADDR)
{
$SortIP += [System.Net.DNS]::GetHostbyAddress($IPADDR) | Add-Member -Name IP -Value $IPADDR -MemberType NoteProperty -PassThru | select IP, HostName
}
$SortIP | sort -property Hostname | export-csv "C:\SANDBOX\ReverseLookupSORT.csv" -NoTypeInformation