{"id":29894,"date":"2023-11-10T19:12:09","date_gmt":"2023-11-10T18:12:09","guid":{"rendered":"https:\/\/pi3g.com\/?p=29894"},"modified":"2023-11-10T19:12:13","modified_gmt":"2023-11-10T18:12:13","slug":"a-powershell-script-to-take-a-list-of-domains-and-output-their-a-and-aaaa-records-as-csv","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/a-powershell-script-to-take-a-list-of-domains-and-output-their-a-and-aaaa-records-as-csv\/","title":{"rendered":"Ein PowerShell-Skript, das eine Liste von Dom\u00e4nen aufnimmt und deren A- und AAAA-Eintr\u00e4ge als CSV ausgibt"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Dies war das Ergebnis einer Kollaboration zwischen mir (mit Programmierkenntnissen, aber nicht in PowerShell!) und ChatGPT. Es verbl\u00fcfft 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:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># PowerShell-Skript zum Abrufen von A- und AAAA-Eintr\u00e4gen f\u00fcr eine Liste von Dom\u00e4nen, mit Debug-Ausgabe\r\n\r\n# Definieren Sie den Pfad zur Dom\u00e4nenliste und zur CSV-Ausgabedatei\r\n$domainListPath = \"C:\\ihr\\path\\domains.txt\"\r\n$outputCsvPath = \".\\domain_records.csv\"\r\n\r\n# Lesen Sie die Liste der Domains aus der Datei\r\n$domains = Get-Content $domainListPath\r\n\r\n# Bereiten Sie ein Array zur Aufnahme der Ergebnisse vor\r\n$results = @()\r\n\r\n# Schleife durch jede Domain und Abfrage der A- und AAAA-Datens\u00e4tze\r\nforeach ($domain in $domains) {\r\n    Write-Host \"Verarbeite Domain: $domain\"\r\n\r\n    # Initialisieren Sie das Datensatzobjekt\r\n    $record = New-Object PSObject -Property @{\r\n        Dom\u00e4ne = $dom\u00e4ne\r\n        ARecord = $null\r\n        AAAARecord = $null\r\n\t\tWAREintrag = $null\r\n\t\tWAAAARecord = $null\r\n    }\r\n\r\n    Write-Host \" Performing nslookup...\"\r\n    # F\u00fchrt nslookup f\u00fcr A- und AAAA-Datens\u00e4tze durch\r\n    $nslookupResults = nslookup $domain\r\n\t$nslookupResults = $nslookupResults | Select-Object -Skip 2\r\n\r\n    # A- und AAAA-Datens\u00e4tze extrahieren\r\n    foreach ($line in $nslookupResults) {\r\n\t\tWrite-Host \"Debug-Ausgabe\"\r\n\t\tWrite-Host $line\r\n        if ($line -match \"(\\d+\\.\\d+\\d+\\.\\d+)\") {\r\n\t\t\t$address = $matches[1]\r\n\t\t\tWrite-Host \" A-Datensatz gefunden: $address\"\r\n\t\t\t$record.ARecord = $address\r\n\t\t} elseif ($line -match \"([a-fA-F0-9:]+:[a-fA-F0-9:]+)\") {\r\n\t\t\t$address = $matches[1]\r\n\t\t\tWrite-Host \" AAAA-Eintrag gefunden: $address\"\r\n\t\t\t$record.AAAARecord = $address\r\n\t\t}\r\n\t\t\r\n\r\n    }\r\n\t\r\n\tWrite-Host \" Performing www nslookup...\"\r\n    # nslookup f\u00fcr A- und AAAA-Eintr\u00e4ge durchf\u00fchren\r\n    $nslookupResults = nslookup www.$domain\r\n\t$nslookupResults = $nslookupResults | Select-Object -Skip 2\r\n\r\n    # A- und AAAA-Datens\u00e4tze extrahieren\r\n    foreach ($line in $nslookupResults) {\r\n\t\tWrite-Host \"Debug-Ausgabe\"\r\n\t\tWrite-Host $line\r\n        if ($line -match \"(\\d+\\.\\d+\\d+\\.\\d+)\") {\r\n\t\t\t$address = $matches[1]\r\n\t\t\tWrite-Host \" A-Datensatz gefunden: $address\"\r\n\t\t\t$record.WARecord = $address\r\n\t\t} elseif ($line -match \"([a-fA-F0-9:]+:[a-fA-F0-9:]+)\") {\r\n\t\t\t$address = $matches[1]\r\n\t\t\tWrite-Host \" AAAA-Eintrag gefunden: $address\"\r\n\t\t\t$record.WAAAARecord = $address\r\n\t\t}\r\n\t\t\r\n\r\n    }\r\n\r\n    # Hinzuf\u00fcgen des Datensatzes zum Ergebnis-Array\r\n    $results += $record\r\n}\r\n\r\nWrite-Host \"Ergebnisse nach CSV exportieren...\"\r\n# Exportieren Sie die Ergebnisse in eine CSV-Datei\r\n$results | Export-Csv -NoTypeInformation -Path $outputCsvPath\r\n\r\nWrite-Host \"Skript abgeschlossen. Pr\u00fcfen Sie $outputCsvPath f\u00fcr die Ausgabe.\"\r\n\r\n# Ende des Skripts\r\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Stellen Sie sicher, dass Sie den Pfad in der Zeile $domainListPath = \"C:\\your\\path\\domains.txt\" anpassen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Skript kann als .ps1-Datei gespeichert und dann in der Windows PowerShell ausgef\u00fchrt werden. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">domains.txt sieht zum Beispiel so aus - einfach eine Dom\u00e4ne in jeder Zeile:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>7vi.de\r\n7voice.de\r\nairtaxi.to<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Ausgabe sieht wie folgt aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"153\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2023\/11\/image.png\" alt=\"\" class=\"wp-image-29895\" srcset=\"https:\/\/pi3g.com\/wp-content\/uploads\/2023\/11\/image.png 915w, https:\/\/pi3g.com\/wp-content\/uploads\/2023\/11\/image-300x50.png 300w, https:\/\/pi3g.com\/wp-content\/uploads\/2023\/11\/image-768x128.png 768w, https:\/\/pi3g.com\/wp-content\/uploads\/2023\/11\/image-18x3.png 18w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Hat ChatGPT dies von sich aus getan?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nein, das tat es nicht - aber es lieferte mir genug Syntax und \"How-to\", um die Probleme schnell zu beheben. In den Kommentaren k\u00f6nnen Sie den urspr\u00fcnglichen Code sehen, der den NS-Server, den ich verwende, verwendet. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dies ist ein Beispiel daf\u00fcr, wie Sie Ihre Produktivit\u00e4t massiv steigern und neue Dinge tun k\u00f6nnen, zu denen Sie vorher nicht in der Lage waren - weil der Kompromiss zwischen Zeit und Leistung dies nicht zulie\u00df. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dies ist ein Beispiel daf\u00fcr, wie man Pr\u00fcfungen und andere Dinge, die man braucht, schnell mit eigenen Skripten durchf\u00fchren kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Wenn ich das fr\u00fcher wirklich gewollt h\u00e4tte, h\u00e4tte 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\u00f6glichkeit, es schnell zu erstellen).<\/p>","protected":false},"excerpt":{"rendered":"<p>Dies war das Ergebnis einer Kollaboration zwischen mir (mit Programmierkenntnissen, aber nicht in PowerShell!) und ChatGPT. Es verbl\u00fcfft 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 Zusammenarbeit: Stellen Sie sicher, dass Sie die...<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[402],"tags":[1023,1055,1054],"class_list":["post-29894","post","type-post","status-publish","format-standard","hentry","category-development","tag-chatgpt","tag-dns-check","tag-domain"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/29894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=29894"}],"version-history":[{"count":1,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/29894\/revisions"}],"predecessor-version":[{"id":29896,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/29894\/revisions\/29896"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=29894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=29894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=29894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}