Python 获取远程主机的DNS配置

Python 获取远程主机的DNS配置,python,dns,nslookup,Python,Dns,Nslookup,我想知道如何通过Python web应用程序,获得连接到我的应用程序的远程客户端的DNS配置 我想知道如何知道远程客户端正在使用哪个DNS服务器 它看起来像这样:您可以从链接的服务中获得相同的信息,但是 你需要的不仅仅是一个web应用程序 这些信息可能并不完全准确 该服务的工作方式是在HTML页面中嵌入资源,这些资源反过来会被浏览器下载。下载需要浏览器解析域名,这允许您强制从浏览器向权威DNS服务器发送DNS请求。通过为每个客户端或请求使用唯一的域名,您可以跟踪从服务器请求唯一域名的DNS服务器

我想知道如何通过Python web应用程序,获得连接到我的应用程序的远程客户端的DNS配置

我想知道如何知道远程客户端正在使用哪个DNS服务器


它看起来像这样:

您可以从链接的服务中获得相同的信息,但是

  • 你需要的不仅仅是一个web应用程序
  • 这些信息可能并不完全准确
  • 该服务的工作方式是在HTML页面中嵌入资源,这些资源反过来会被浏览器下载。下载需要浏览器解析域名,这允许您强制从浏览器向权威DNS服务器发送DNS请求。通过为每个客户端或请求使用唯一的域名,您可以跟踪从服务器请求唯一域名的DNS服务器

    过程如下:

  • 为每个页面请求生成一个随机、唯一的ID,例如,
    rndun1qu3
    (必须是有效的DNS标签,请咨询)。每次都必须是一个新ID,以便它不会出现在任何DNS缓存中

  • 嵌入HTML
    。当浏览器第一次看到此域时,它将尝试解析
    rndun1qu3.your tracking domain.com
    。请注意,触发DNS请求的任何操作都可以用于此目的,例如AJAX调用、
    元素等

  • 监视到达负责
    rndun1qu3.your tracking domain.com
    的DNS服务器的DNS请求。当您看到对
    rndun1qu3.your tracking domain.com
    的请求时,请注意请求DNS信息的远程对等IP地址(这将是您正在查找的IP地址),然后通知您的web应用程序

  • 上面解释了为什么我说你需要的不仅仅是一个web应用程序——你还需要一个可以监控的DNS服务器。这可能是一个普通的DNS服务器,带有可以监视的日志,或者是专门构建的。有很多开源项目,甚至Python示例,您可以根据自己的目的进行定制。您所需要做的就是将子域的权威服务器指向该服务器


    至于为什么信息可能不准确,考虑DNS服务器常常被配置为将所有请求转发到另一个服务器而不是通过根DNS服务器。在这种情况下,DNS请求将来自最终执行名称解析的服务器,即转发器服务器。例如,您的公司网络可能有一个位于192.168.251.1的DNS服务器,其公共IP为1.2.3.4,但如果它将请求转发到Google DNS,您很可能会看到请求来自8.8.8.8(Google DNS IP),而不是1.2.3.4。在DNS中无法找到请求查询的原始主机,因此这几乎是您可以获得的最佳信息。

    您可以从链接的服务中获得相同的信息,但是

  • 你需要的不仅仅是一个web应用程序
  • 这些信息可能并不完全准确
  • 该服务的工作方式是在HTML页面中嵌入资源,这些资源反过来会被浏览器下载。下载需要浏览器解析域名,这允许您强制从浏览器向权威DNS服务器发送DNS请求。通过为每个客户端或请求使用唯一的域名,您可以跟踪从服务器请求唯一域名的DNS服务器

    过程如下:

  • 为每个页面请求生成一个随机、唯一的ID,例如,
    rndun1qu3
    (必须是有效的DNS标签,请咨询)。每次都必须是一个新ID,以便它不会出现在任何DNS缓存中

  • 嵌入HTML
    。当浏览器第一次看到此域时,它将尝试解析
    rndun1qu3.your tracking domain.com
    。请注意,触发DNS请求的任何操作都可以用于此目的,例如AJAX调用、
    元素等

  • 监视到达负责
    rndun1qu3.your tracking domain.com
    的DNS服务器的DNS请求。当您看到对
    rndun1qu3.your tracking domain.com
    的请求时,请注意请求DNS信息的远程对等IP地址(这将是您正在查找的IP地址),然后通知您的web应用程序

  • 上面解释了为什么我说你需要的不仅仅是一个web应用程序——你还需要一个可以监控的DNS服务器。这可能是一个普通的DNS服务器,带有可以监视的日志,或者是专门构建的。有很多开源项目,甚至Python示例,您可以根据自己的目的进行定制。您所需要做的就是将子域的权威服务器指向该服务器

    至于为什么信息可能不准确,考虑DNS服务器常常被配置为将所有请求转发到另一个服务器而不是通过根DNS服务器。在这种情况下,DNS请求将来自最终执行名称解析的服务器,即转发器服务器。例如,您的公司网络可能有一个位于192.168.251.1的DNS服务器,其公共IP为1.2.3.4,但如果它将请求转发到Google DNS,您很可能会看到请求来自8.8.8.8(Google DNS IP),而不是1.2.3.4。在DNS中无法找到请求查询的原始主机,因此这几乎是您所能得到的最好结果