【问题标题】:Get all FQDN for an IP address in python在python中获取IP地址的所有FQDN
【发布时间】:2019-03-05 16:51:51
【问题描述】:

我有以下问题:我实际上正在为 ovirt 服务器制作一个脚本,以自动删除虚拟机,其中包括从 DNS 中注销它们。但是对于一些非常具体的虚拟机,一个 IP 地址示例有多个 FQDN:

myfirstfqdn.com IN A 10.10.10.10
mysecondfqdn.com IN A 10.10.10.10

我曾尝试在 python 中使用套接字,但它只返回一个答案,我也尝试使用 dnspython 使用 python,但我失败了。 目标是统计dns服务器上A类记录的数量 有人有想法做这样的事情吗?

【问题讨论】:

    标签: python python-3.x sockets dnspython


    【解决方案1】:

    这完全不可能。如果我心情不错,我可以在我的 DNS 服务器中添加一个指向您的 IP 地址的条目。一般是查不出来的(除了http(s)等协议中的一些提示)。

    【讨论】:

      【解决方案2】:

      给定上述格式的区域文件,您可以执行类似...

      from collections import defaultdict
      
      zone_file = """myfirstfqdn.com IN A 10.10.10.10
      mysecondfqdn.com IN A 10.10.10.10"""
      
      # Build mapping for lookups
      ip_fqdn_mapping = defaultdict(list)
      
      for record in zone_file.split("\n"):
          fqdn, record_class, record_type, ip_address = record.split()
          ip_fqdn_mapping[ip_address].append(fqdn)
      
      # Lookup
      ip_address_to_lookup = "10.10.10.10"
      fqdns = ip_fqdn_mapping[ip_address_to_lookup]
      
      print(fqdns)
      

      注意:可以像这样使用套接字 - Python lookup hostname from IP with 1 second timeout

      但这确实需要您查询的 DNS 服务器已正确配置 PTR 反向记录。

      https://www.cloudns.net/wiki/article/40/

      【讨论】:

        猜你喜欢
        • 2011-06-05
        • 1970-01-01
        • 2017-11-10
        • 1970-01-01
        • 2018-08-18
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        • 2018-10-08
        相关资源
        最近更新 更多