我正在尝试获取特定域的 DNS 记录。所以,我找到dnspython
了可以轻松完成的包。当我从我的计算机上运行它时它工作正常。但是,当我从 Django 视图中调用它时,它会显示以前的记录(旧记录),这意味着它没有更新。
它是操作系统级别的某种缓存吗?请注意,我也在使用Docker。在 Django 中重新启动 docker 和清除缓存没有帮助,仍然显示旧记录。
这是检查记录的示例代码:
import dns.resolver
result = dns.resolver.resolve("domain.com", "TXT")[0].to_text()
当我从我的计算机运行它时,上面的代码片段可以工作并显示 TXT 记录中的任何更新。但是,在 Django 中,它停留在旧记录中并且没有更新。
在 Django 视图中:
def verify_dns_view(request, domain_id):
domain = get_object_or_404(models.Domain, id=domain_id)
mx_record = dns.resolver.resolve(domain.name, "MX")[0].to_text()
txt_record_spf = dns.resolver.resolve(domain.name, "TXT")[0].to_text()
...