0

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

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

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

4

2 回答 2

1

那是完全不可能的。如果我心情不错,我可以在我的 DNS 服务器中添加一个指向您的 IP 地址的条目。通常,您无法找到它(除了某些协议中的一些提示,例如 http(s))。

于 2019-03-05T16:54:17.250 回答
0

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

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 从 IP 查找主机名,超时时间为 1 秒

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

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

于 2019-03-05T17:15:00.180 回答