Un script PowerShell pour prendre une liste de domaines et produire leurs enregistrements A et AAAA au format CSV.

C'est le résultat d'une collaboration entre moi (avec des compétences en programmation, mais pas en PowerShell !) et ChatGPT. Ce qui peut être fait avec ChatGPT me sidère - c'est ce que le travail est censé être ! Rapidement, sans avoir à rechercher chaque ligne. L'homme et la machine en parfaite colloboration :

# Script PowerShell pour obtenir les enregistrements A et AAAA pour une liste de domaines, avec sortie de débogage

# Définir le chemin d'accès à la liste des domaines et au fichier CSV de sortie
$domainListPath = "C:\your\path\domains.txt"
$outputCsvPath = ".\domain_records.csv"

# Lire la liste des domaines à partir du fichier
$domains = Get-Content $domainListPath

# Préparer un tableau pour contenir les résultats
$results = @()

# Parcourez en boucle chaque domaine et interrogez ses enregistrements A et AAAA
foreach ($domain in $domains) {
    Write-Host "Traitement du domaine : $domain"

    # Initialiser l'objet enregistrement
    $record = New-Object PSObject -Property @{
        Domaine = $domain
        ARecord = $null
        AAAARecord = $null
		WARecord = $null
		WAAAARecord = $null
    }

    Write-Host " Performing nslookup..."
    # Effectuer un nslookup pour les enregistrements A et AAAA
    $nslookupResults = nslookup $domain
	$nslookupResults = $nslookupResults | Select-Object -Skip 2

    # Extraire les enregistrements A et AAAA
    foreach ($line in $nslookupResults) {
		Write-Host "Sortie de débogage"
		Affiche $line
        if ($line -match "(\d+\d+\d+\d+\d+\d+)") {
			$address = $matches[1]
			Write-Host " Enregistrement A trouvé : $address"
			$record.ARecord = $address
		elseif ($line -match "([a-fA-F0-9 :]+ :[a-fA-F0-9 :]+)") {
			$address = $matches[1]
			Write-Host " Found AAAA record : $address"
			$record.AAAARecord = $address
		}
		

    }
	
	Write-Host " Performing www nslookup..."
    # Effectuer un nslookup pour les enregistrements A et AAAA
    $nslookupResults = nslookup www.$domain
	$nslookupResults = $nslookupResults | Select-Object -Skip 2

    # Extraire les enregistrements A et AAAA
    foreach ($line in $nslookupResults) {
		Write-Host "Sortie de débogage"
		Afficheur de texte $line
        if ($line -match "(\d+\d+\d+\d+\d+\d+)") {
			$address = $matches[1]
			Write-Host " Enregistrement A trouvé : $address "
			$record.WARecord = $address
		elseif ($line -match "([a-fA-F0-9 :]+ :[a-fA-F0-9 :]+)") {
			$address = $matches[1]
			Write-Host " Enregistrement AAAA trouvé : $address"
			$record.WAAAARecord = $address
		}
		

    }

    # Ajouter l'enregistrement au tableau des résultats
    $results += $record
}

Write-Host "Exportation des résultats au format CSV..."
# Exporter les résultats vers un fichier CSV
$results | Export-Csv -NoTypeInformation -Path $outputCsvPath

Write-Host "Script terminé. Vérifier $outputCsvPath pour la sortie."

# Fin du script

assurez-vous d'ajuster le chemin dans la ligne $domainListPath = "C:\your\path\domains.txt".

Le script peut être enregistré sous la forme d'un fichier .ps1, puis exécuté dans Windows PowerShell.

Le fichier domains.txt ressemble à ceci, par exemple : un seul domaine par ligne :

7vi.de
7voice.de
airtaxi.to

Le résultat ressemble à ceci :

Est-ce que ChatGPT a fait cela tout seul ?

Non, mais il a fourni suffisamment de syntaxe et de "comment faire" pour que je puisse résoudre les problèmes rapidement. Dans les commentaires, vous pouvez voir le code original, qui a pris le serveur NS que j'utilise.

Il s'agit d'un exemple de la manière d'augmenter massivement votre productivité et de faire de nouvelles choses que vous n'étiez pas en mesure de faire auparavant - parce que le compromis temps/production ne vous le permettait pas.

Il s'agit d'un exemple de la façon d'exécuter les contrôles et les choses dont vous avez besoin, en créant rapidement vos propres scripts.

(Si j'avais vraiment voulu faire cela dans le passé, j'aurais probablement utilisé Ruby ou Python, et écrit ceci sur une machine Linux. Il se trouve que mon bureau est - encore - une machine Windows, donc c'est l'option pratique pour le mettre en place rapidement).