Een PowerShell-script om een lijst met domeinen te nemen en hun A en AAAA records als CSV uit te voeren

Dit was het resultaat van een samenwerking tussen mij (met programmeervaardigheden, maar niet in PowerShell!) en ChatGPT. Ik sta versteld van wat er allemaal mogelijk is met ChatGPT - dit is wat werk IS! Snel, zonder elke regel te onderzoeken. Mens en machine in perfecte samenwerking:

# PowerShell-script om A- en AAAA-records op te vragen voor een lijst met domeinen, met debug-uitvoer

# Definieer het pad naar de domeinenlijst en het uitvoer CSV-bestand
$domainListPath = "C:úwpaddomeinen.txt".
$outputCsvPath = ".\domain_records.csv".

# Lees de lijst met domeinen uit het bestand
$domains = Get-Content $domainListPath

# Maak een array om de resultaten te bevatten
$results = @()

# Loop door elk domein en vraag de A en AAAA records op
foreach ($domain in $domains) {
    Write-Host "Verwerking domein: $domain"

    # Initialiseer het recordobject
    $record = Nieuw-Object PSObject -Eigenschap @{
        Domein = $domein
        ARecord = $null
        AAAARbevel = $null
		WAAAAROpdracht = $null
		WAAAAROpdracht = $null
    }

    Write-Host " Uitvoeren nslookup..."
    # Uitvoeren nslookup voor A en AAAA records
    $nslookupResults = nslookup $domain
	$nslookupResults = $nslookupResults | Selecteer-object -Skip 2

    # Extraheer A en AAAA records
    foreach ($line in $nslookupResults) {
		Write-Host "Debug uitvoer".
		Write-post $line
        if ($line -match "(\d+\d+\d+\d+)") {
			$address = $matches[1]
			Write-Host " A record gevonden: $address".
			$record.ARecord = $address
		} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
			$address = $matches[1]
			Write-Host " AAAA-record gevonden: $address".
			$record.AAAARecord = $address
		}
		

    }
	
	Write-Host " Uitvoeren van www nslookup..."
    # Uitvoeren nslookup voor A en AAAA records
    $nslookupResults = nslookup www.$domain
	$nslookupResults = $nslookupResults | Selecteer-object -Skip 2

    # Extraheer A en AAAA records
    foreach ($line in $nslookupResults) {
		Write-Host "Debug uitvoer".
		Write-post $line
        if ($line -match "(\d+\d+\d+\d+)") {
			$address = $matches[1]
			Write-Host " A record gevonden: $address".
			$record.WARecord = $address
		} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
			$address = $matches[1]
			Write-Host " AAAA-record gevonden: $address".
			$record.WAAAARecord = $address
		}
		

    }

    # Voeg het record toe aan de resultaten-array
    $results += $record
}

Write-Host "Resultaten exporteren naar CSV..."
# Exporteer de resultaten naar een CSV-bestand
$results | Export-Csv -NoTypeInformation -Path $outputCsvPath

Write-Host "Script voltooid. Controleer $outputCsvPath voor uitvoer."

# Einde van script

Zorg ervoor dat je het pad aanpast in de regel $domainListPath = "C:\path\domains.txt".

Het script kan worden opgeslagen als een .ps1-bestand en vervolgens worden uitgevoerd in Windows PowerShell.

domains.txt ziet er bijvoorbeeld zo uit - gewoon één domein op elke regel:

7vi.de
7voice.de
airtaxi.to

De uitvoer ziet er als volgt uit:

Heeft ChatGPT dit zelf gedaan?

Nee, dat deed het niet - maar het gaf genoeg syntaxis en "how-to" voor mij om de problemen snel te kunnen oplossen. In de commentaren kun je de originele code zien, die de NS server nam die ik gebruik.

Dit is een voorbeeld van hoe je je productiviteit enorm kunt verhogen en nieuwe dingen kunt doen die je eerder niet kon doen, omdat de afweging tussen tijd en output dat niet toeliet.

Dit is een voorbeeld van hoe je controles en dingen die je nodig hebt kunt uitvoeren door snel je eigen scripts te draaien.

(Als ik dit vroeger echt had willen doen, had ik waarschijnlijk Ruby of Python gebruikt en dit op een Linux-machine geschreven. Mijn desktop is toevallig - nog steeds - een Windows machine, dus dit is de handige, snelle optie hier).