Powershell DNS - como faço para pesquisar uma lista de servidores DNS e depois filtrar os resultados?

Powershell DNS - como faço para pesquisar uma lista de servidores DNS e depois filtrar os resultados?

Estou tentando pesquisar uma lista de servidores DNS específicos (que tenho em um arquivo) e, em seguida, consultar um nome de host específico. Eu posso fazer isso :)

A próxima parte é que desejo retornar uma lista dos servidores DNS que retornam um resultado diferente de Outlook-emea*, quero o IP do servidor DNS e também o resultado.

O problema que tenho é que o comando DNS retorna registros CNAMES e A - estou interessado apenas nos registros A e também não tenho certeza de como filtrar os resultados. Isso é o que tenho até agora.

$Address = 'outlook.office365.com'

#$listofIPs = Get-Content 'C:\Users\user1\file.txt'

$listofIPs = '8.8.8.8'

$ResultList = @()

foreach ($ip in $listofIPs)

{

 $Result = Resolve-DnsName -Name $Address -Type A -Server $ip

Write-Host ""
Write-Host DNS Server: -foregroundcolor "green" $ip 
Write-Host ""
Write-Host Resolved Names: -foregroundcolor "green"

}

Alguém pode ajudar?

Responder1

Aqui está o script que tenho até agora, baseado no seu:

$Address = "outlook.office365.com"

$listofIPs = Get-Content "C:\file.txt"

$ResultList = @()

foreach ($ip in $listofIPs)

{
    # The following query will list only records begining with "outlook-", but not begining with "outlook-emea"
    $DNSquery = (Resolve-DnsName -Name $Address -Type A -Server $ip).Name | Where-Object {$_ -inotlike "outlook-emea*" -and $_ -ilike "outlook-*"}

    # We assume, based on several tests, that selecting the first result for the previous query is enough.
    $Result = $DNSquery | Select -First 1

    if ($DNSquery)
    {
        # Creating custom object to feed the array
        $Object = New-Object PSObject
        $Object | Add-Member -MemberType NoteProperty -Name "DNS Server IP" -Value $ip
        $Object | Add-Member -MemberType NoteProperty -Name "Result" -Value $Result
        $ResultList += $Object
    }

    # Displaying the array with the results
    $ResultList
}

E aqui está o resultado que obtive, quando meu arquivo de texto contém 8.8.8.8, 8.8.8.4, 173.255.0.194 e 173.201.20.134 :

Resultado da consulta DNS

informação relacionada