Ein PowerShell-Skript, das eine Liste von Domänen aufnimmt und deren A- und AAAA-Einträge als CSV ausgibt

Dies war das Ergebnis einer Kollaboration zwischen mir (mit Programmierkenntnissen, aber nicht in PowerShell!) und ChatGPT. Es verblüfft mich, was man mit ChatGPT alles machen kann - das ist es, was Arbeit sein soll! Schnell, ohne jede einzelne Zeile zu recherchieren. Mensch und Maschine in perfekter Kollaboration:

# PowerShell-Skript zum Abrufen von A- und AAAA-Einträgen für eine Liste von Domänen, mit Debug-Ausgabe

# Definieren Sie den Pfad zur Domänenliste und zur CSV-Ausgabedatei
$domainListPath = "C:\ihr\path\domains.txt"
$outputCsvPath = ".\domain_records.csv"

# Lesen Sie die Liste der Domains aus der Datei
$domains = Get-Content $domainListPath

# Bereiten Sie ein Array zur Aufnahme der Ergebnisse vor
$results = @()

# Schleife durch jede Domain und Abfrage der A- und AAAA-Datensätze
foreach ($domain in $domains) {
    Write-Host "Verarbeite Domain: $domain"

    # Initialisieren Sie das Datensatzobjekt
    $record = New-Object PSObject -Property @{
        Domäne = $domäne
        ARecord = $null
        AAAARecord = $null
		WAREintrag = $null
		WAAAARecord = $null
    }

    Write-Host " Performing nslookup..."
    # Führt nslookup für A- und AAAA-Datensätze durch
    $nslookupResults = nslookup $domain
	$nslookupResults = $nslookupResults | Select-Object -Skip 2

    # A- und AAAA-Datensätze extrahieren
    foreach ($line in $nslookupResults) {
		Write-Host "Debug-Ausgabe"
		Write-Host $line
        if ($line -match "(\d+\.\d+\d+\.\d+)") {
			$address = $matches[1]
			Write-Host " A-Datensatz gefunden: $address"
			$record.ARecord = $address
		} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
			$address = $matches[1]
			Write-Host " AAAA-Eintrag gefunden: $address"
			$record.AAAARecord = $address
		}
		

    }
	
	Write-Host " Performing www nslookup..."
    # nslookup für A- und AAAA-Einträge durchführen
    $nslookupResults = nslookup www.$domain
	$nslookupResults = $nslookupResults | Select-Object -Skip 2

    # A- und AAAA-Datensätze extrahieren
    foreach ($line in $nslookupResults) {
		Write-Host "Debug-Ausgabe"
		Write-Host $line
        if ($line -match "(\d+\.\d+\d+\.\d+)") {
			$address = $matches[1]
			Write-Host " A-Datensatz gefunden: $address"
			$record.WARecord = $address
		} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
			$address = $matches[1]
			Write-Host " AAAA-Eintrag gefunden: $address"
			$record.WAAAARecord = $address
		}
		

    }

    # Hinzufügen des Datensatzes zum Ergebnis-Array
    $results += $record
}

Write-Host "Ergebnisse nach CSV exportieren..."
# Exportieren Sie die Ergebnisse in eine CSV-Datei
$results | Export-Csv -NoTypeInformation -Path $outputCsvPath

Write-Host "Skript abgeschlossen. Prüfen Sie $outputCsvPath für die Ausgabe."

# Ende des Skripts

Stellen Sie sicher, dass Sie den Pfad in der Zeile $domainListPath = "C:\your\path\domains.txt" anpassen.

Das Skript kann als .ps1-Datei gespeichert und dann in der Windows PowerShell ausgeführt werden.

domains.txt sieht zum Beispiel so aus - einfach eine Domäne in jeder Zeile:

7vi.de
7voice.de
airtaxi.to

Die Ausgabe sieht wie folgt aus:

Hat ChatGPT dies von sich aus getan?

Nein, das tat es nicht - aber es lieferte mir genug Syntax und "How-to", um die Probleme schnell zu beheben. In den Kommentaren können Sie den ursprünglichen Code sehen, der den NS-Server, den ich verwende, verwendet.

Dies ist ein Beispiel dafür, wie Sie Ihre Produktivität massiv steigern und neue Dinge tun können, zu denen Sie vorher nicht in der Lage waren - weil der Kompromiss zwischen Zeit und Leistung dies nicht zuließ.

Dies ist ein Beispiel dafür, wie man Prüfungen und andere Dinge, die man braucht, schnell mit eigenen Skripten durchführen kann.

(Wenn ich das früher wirklich gewollt hätte, hätte ich wahrscheinlich Ruby oder Python verwendet und das Ganze auf einem Linux-Rechner geschrieben. Mein Desktop ist - immer noch - ein Windows-Rechner, also ist dies hier die bequeme Möglichkeit, es schnell zu erstellen).