Python批量处理多DNS域名nslookup解析脚本

5 下载量 144 浏览量 更新于2024-08-30 收藏 66KB PDF 举报
本文档介绍了一种Python编程方法,用于批量处理多DNS和多域名的nslookup解析。主要目标是通过将输入数据存储在CSV文件中,如"data\domain.csv",然后调用nslookup命令行工具来获取每个域名对应的DNS记录,并将结果整理成CSV格式,保存到另一个文件"data\nslookup.csv"中,便于后续的分析和查看。 首先,作者定义了一个名为`get_nslookup`的函数,该函数接收两个参数:一个域名(domain)和一个DNS服务器地址(dns)。函数内部,它使用`subprocess.Popen`创建一个子进程,执行nslookup命令,查询指定域名在指定DNS上的解析信息。命令的格式是`nslookup {domain} {dns}`,并将输出结果通过`stdout=subprocess.PIPE`获取。获取到的结果被解码为GBK编码,并进行处理以提取关键信息,如域名、DNS服务器以及解析出的IP地址。 在主程序部分,首先读取输入文件"data\domain.csv",使用`csv.DictReader`解析文件内容,提取出每行中的域名。接着,遍历这些域名,如果某一行的DNS字段非空,则将其添加到`dns_list`中。这样,`dns_list`包含了所有需要查询的DNS服务器列表。 接下来,使用`with open(file_nslookup, 'w+', newline='', encoding='')`打开输出文件"data\nslookup.csv",以追加模式写入。使用循环,对每一个DNS服务器和对应的域名进行`get_nslookup`函数的调用,获取解析结果。然后,将查询结果(包括域名、DNS和解析出的IP)作为一个列表存储到每一行的CSV条目中。 最后,将这些数据写入输出文件,确保每行对应一条原始的输入域名及其对应的DNS解析信息。整个过程既实现了批量处理,也便于了数据的管理和分析。 总结来说,这个Python脚本利用了CSV文件作为数据源,通过NSLOOKUP命令行工具高效地批量解析多DNS多域名的DNS记录,并将结果整合为CSV格式,提高了DNS查询的效率和数据管理的便利性。这对于网络管理员或需要频繁查询DNS信息的人员非常实用。