Um script do PowerShell para obter uma lista de domínios e apresentar os respectivos registos A e AAAA como CSV
Este foi o resultado de uma colaboração entre mim (com conhecimentos de programação, mas não de PowerShell!) e o ChatGPT. Fiquei impressionado com o que pode ser feito com o ChatGPT - é assim que o trabalho deve ser! Rápido, sem ter de pesquisar cada linha. Homem e máquina em perfeita colaboração:
# Script PowerShell para obter registos A e AAAA para uma lista de domínios, com saída de depuração
# Defina o caminho para a lista de domínios e o arquivo CSV de saída
$domainListPath = "C:\your\path\domains.txt"
$outputCsvPath = ".\domain_records.csv"
# Ler a lista de domínios do arquivo
$domains = Get-Content $domainListPath
# Preparar um array para guardar os resultados
$results = @()
# Percorra cada domínio e consulte seus registros A e AAAA
foreach ($domain in $domains) {
Write-Host "A processar domínio: $domain"
# Inicializar o objeto de registo
$record = New-Object PSObject -Property @{
Domain = $domain
ARecord = $null
AAAARecord = $null
WARecord = $null
WAAAARecord = $null
}
Write-Host " A efetuar nslookup..."
# Executar nslookup para registos A e AAAA
$nslookupResults = nslookup $domain
$nslookupResults = $nslookupResults | Select-Object -Skip 2
# Extrair registos A e AAAA
foreach ($line in $nslookupResults) {
Write-Host "Saída de depuração"
Write-Host $line
if ($line -match "(\d+\.\d+\.\d+\.\d+)") {
$address = $matches[1]
Write-Host " Encontrado um registo A: $address"
$record.ARecord = $address
} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
$address = $matches[1]
Write-Host " Registo AAAA encontrado: $address"
$record.AAAARecord = $address
}
}
Write-Host " A efetuar o nslookup da www..."
# Executar nslookup para registos A e AAAA
$nslookupResults = nslookup www.$domain
$nslookupResults = $nslookupResults | Select-Object -Skip 2
# Extrair registos A e AAAA
foreach ($line in $nslookupResults) {
Write-Host "Saída de depuração"
Write-Host $line
if ($line -match "(\d+\.\d+\.\d+\.\d+)") {
$address = $matches[1]
Write-Host " Encontrado um registo A: $address"
$record.WARecord = $address
} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
$address = $matches[1]
Write-Host " Registo AAAA encontrado: $address"
$record.WAAAARecord = $address
}
}
# Adicionar o registo à matriz de resultados
$results += $record
}
Write-Host "Exportando resultados para CSV..."
# Exportar os resultados para um ficheiro CSV
$results | Export-Csv -NoTypeInformation -Path $outputCsvPath
Write-Host "Script concluído. Verificar $outputCsvPath para a saída."
# Fim do script
certifique-se de ajustar o caminho na linha $domainListPath = "C:\your\path\domains.txt".
O script pode ser guardado como um ficheiro .ps1 e depois executado no Windows PowerShell.
O ficheiro domains.txt tem este aspeto, por exemplo - simplesmente um domínio em cada linha:
7vi.de
7voice.de
airtaxi.to
O resultado tem o seguinte aspeto:
O ChatGPT fez isto por si próprio?
Não, não foi - mas forneceu sintaxe e "como fazer" suficientes para que eu pudesse resolver os problemas rapidamente. Nos comentários pode ver o código original, que utilizou o servidor NS que eu uso.
Este é um exemplo de como aumentar enormemente a sua produtividade e fazer coisas novas, que não era capaz de fazer antes - porque a relação tempo/resultado não o permitia.
Este é um exemplo de como executar verificações e coisas de que necessita, criando rapidamente os seus próprios scripts.
(Se eu quisesse mesmo fazer isto antigamente, provavelmente teria usado Ruby ou Python, e escrito isto numa máquina Linux. Acontece que o meu ambiente de trabalho é - ainda - uma máquina Windows, por isso esta é a opção conveniente para o fazer rapidamente).