使用 Python / Django [dnspython] 查找 DNS 记录

DNS record look up with Python / Django [dnspython]

我正在尝试获取特定域的 DNS 记录。因此,我找到了可以轻松完成的 dnspython 包。当我从我的电脑 运行 它工作正常。但是,当我从 Django 视图调用它时,它显示 previous records (old records) 这意味着它没有更新。

它是某种 OS 级别的缓存吗?请注意,我还使用了 Docker。重新启动 docker 并清除 Django 中的缓存没有帮助,仍然显示旧记录。

查看记录的示例代码如下:

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()
    ...
  

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