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).