PowerShell 脚本,用于获取域名列表并以 CSV 格式输出其 A 和 AAAA 记录

这是我(有编程技能,但不懂 PowerShell!)和 ChatGPT 共同合作的成果。ChatGPT 的功能让我大开眼界--这才是工作的真谛!快速,无需研究每一行。人与机器的完美结合:

# PowerShell 脚本获取域列表的 A 和 AAAA 记录,并提供调试输出

# 定义域列表和输出 CSV 文件的路径
$domainListPath = "C:/your\path\domains.txt"
$outputCsvPath = ".\domain_records.csv"

# 从文件中读取域名列表
$domains = Get-Content $domainListPath

# 准备一个数组来保存结果
$results = @()

# 循环查看每个域并查询其 A 和 AAAA 记录
foreach ($domain in $domains) {
    Write-Host "处理域:$domain"

    # 初始化记录对象
    $record = New-Object PSObject -Property @{
        域 = $domain
        ARecord = $null
        AAAARecord = $null
		WARecord = $null
		WAAAARecord = $null
    }

    Write-Host " 执行 nslookup..."
    # 为 A 和 AAAA 记录执行 nslookup
    $nslookupResults = nslookup $domain
	$nslookupResults = $nslookupResults | Select-Object -Skip 2

    # 提取 A 和 AAAA 记录
    foreach ($line in $nslookupResults) {
		Write-Host "调试输出
		写入主机 $line
        if ($line -match "(\d+.\d+\.\d+\.\d+)") {
			$address = $matches[1]
			Write-Host " 发现 A 记录:$address"
			$record.ARecord = $address
		} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
			$address = $matches[1]
			Write-Host " 找到 AAAA 记录:$address" { $record.AAAA 记录:$address
			$record.AAAARecord = $address
		}
		

    }
	
	Write-Host " 执行 www nslookup..."
    # 执行 A 和 AAAA 记录的 nslookup
    $nslookupResults = nslookup www.$domain
	$nslookupResults = $nslookupResults | Select-Object -Skip 2

    # 提取 A 和 AAAA 记录
    foreach ($line in $nslookupResults) {
		Write-Host "调试输出
		写入主机 $line
        if ($line -match "(\d+.\d+\.\d+\.\d+)") {
			$address = $matches[1]
			Write-Host " 发现 A 记录:$address"
			$record.WARecord = $address
		} elseif ($line -match "([a-fA-F0-9:]+:[a-fA-F0-9:]+)") {
			$address = $matches[1]
			Write-Host " 找到 AAAA 记录:$address" { $record.Write-Host.Write-Host.Write-Host.Write-Host{
			$record.WAAAARecord = $address
		}
		

    }

    # 将记录添加到结果数组中
    $results += $record
}

Write-Host "正在将结果导出到 CSV 文件..."
# 将结果导出为 CSV 文件
$results | Export-Csv -NoTypeInformation -Path $outputCsvPath

Write-Host "脚本已完成。检查 $outputCsvPath 以获取输出结果。"

# 脚本结束

请务必调整 $domainListPath = "C:\your\path\domains.txt" 这一行中的路径。

脚本可以保存为 .ps1 文件,然后在 Windows PowerShell 中执行。

例如,domains.txt 是这样的--每行只写一个域:

7vi.de
7voice.de
airtaxi.to

输出结果如下

是 ChatGPT 自己做的吗?

没有,但它提供了足够的语法和 "操作方法",让我能够快速解决问题。在注释中,你可以看到它的原始代码,其中使用了我使用的 NS 服务器。

这个例子说明了如何大幅提高生产率,做以前做不到的新事情--因为时间/产出权衡不允许你这样做。

这是一个如何通过快速启动自己的脚本来运行检查和所需功能的示例。

(如果我以前真的想这样做,我可能会使用 Ruby 或 Python,并在 Linux 机器上编写。我的台式机恰好还是 Windows 机器,所以这是个方便的快速启动选项)。