Uno script PowerShell per prendere un elenco di domini e produrre i loro record A e AAAA in formato CSV.
Questo è il risultato di una collaborazione tra me (con competenze di programmazione, ma non di PowerShell!) e ChatGPT. Mi lascia senza parole ciò che si può fare con ChatGPT: questo è ciò che dovrebbe essere il lavoro! Veloce, senza ricercare ogni singola riga. L'uomo e la macchina in perfetta collaborazione:
# Script PowerShell per ottenere i record A e AAAA per un elenco di domini, con output di debug
# Definire il percorso dell'elenco dei domini e del file CSV di output
$domainListPath = "C:\yourpath\domains.txt"
$outputCsvPath = ".\domain_records.csv"
# Leggere l'elenco dei domini dal file
$domains = Get-Content $domainListPath
# Preparare una matrice per contenere i risultati
$results = @()
# Eseguire il loop di ogni dominio e interrogare i suoi record A e AAAA
foreach ($domain in $domains) {
Write-Host "Elaborazione dominio: $domain"
# Inizializzare l'oggetto record
$record = New-Object PSObject -Property @{
Dominio = $dominio
ARecord = $null
AAAARecord = $null
WARecord = $null
WAAAARecord = $null
}
Write-Host " Esecuzione di nslookup..."
# Eseguire nslookup per i record A e AAAA
$nslookupResults = nslookup $domain
$nslookupResults = $nslookupResults | Select-Object -Skip 2
# Estrarre i record A e AAAA
foreach ($line in $nslookupResults) {
Scrivi-Host "Debug output"
Scrivi-Host $line
if ($line -match "(\d+\.\d+\.\d+\.\d+)") {
$address = $matches[1]
Write-Host " Trovato record A: $address"
$record.ARecord = $address
} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
$address = $matches[1]
Write-Host " Trovato record AAAA: $address"
$record.AAAARecord = $address
}
}
Write-Host " Esecuzione di www nslookup..."
# Eseguire nslookup per i record A e AAAA
$nslookupResults = nslookup www.$domain
$nslookupResults = $nslookupResults | Select-Object -Skip 2
# Estrarre i record A e AAAA
foreach ($line in $nslookupResults) {
Scrivi-Host "Debug output"
Scrivi-Host $line
if ($line -match "(\d+\.\d+\.\d+\.\d+)") {
$address = $matches[1]
Write-Host " Trovato record A: $address"
$record.WARecord = $address
} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
$address = $matches[1]
Write-Host " Trovato record AAAA: $address"
$record.WAAAARecord = $address
}
}
# Aggiungere il record all'array dei risultati
$results += $record
}
Write-Host "Esportazione dei risultati in CSV..."
# Esportare i risultati in un file CSV
$results | Export-Csv -NoTypeInformation -Path $outputCsvPath
Write-Host "Script completato. Controllare il percorso $outputCsvPath per l'output".
# Fine dello script
assicurarsi di regolare il percorso nella riga $domainListPath = "C:\yourpath\domains.txt".
Lo script può essere salvato come file .ps1 e quindi eseguito in Windows PowerShell.
Il file domains.txt ha questo aspetto, ad esempio: semplicemente un dominio su ogni riga:
7vi.de
7voice.de
airtaxi.to
Il risultato è simile a questo:
ChatGPT ha fatto questo da solo?
No, ma mi ha fornito una sintassi e un "how-to" sufficienti per risolvere rapidamente i problemi. Nei commenti si può vedere il codice originale, che ha preso il server NS che uso.
Questo è un esempio di come si possa aumentare in modo massiccio la produttività e fare cose nuove che prima non si potevano fare, perché il compromesso tempo/output non lo consentiva.
Questo è un esempio di come eseguire i controlli e le cose necessarie, creando rapidamente i propri script.
(Se avessi voluto farlo davvero ai vecchi tempi, probabilmente avrei usato Ruby o Python e avrei scritto questo documento su una macchina Linux. Si dà il caso che il mio desktop sia - ancora - una macchina Windows, quindi questa è l'opzione più conveniente per farlo in fretta).