-1

我正在尝试获取特定域的 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()
    ...
  
4

1 回答 1

0

您的应用程序和 PC 连接到的 DNS 服务器可能始终不同。在您的情况下,应用程序服务器距离注册实际域的服务器“更远”,因此它尚未更新记录。

于 2021-06-06T20:58:24.127 回答