在python中获取IP地址的所有FQDN

2024-10-01 22:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了以下问题:我实际上在为一个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记录的数量 有人有办法做这种事吗?在


Tags: 答案in服务器脚本com示例目标dns
2条回答

那完全不可能。如果我心情好的话,我可以在DNS服务器上添加一个指向你的IP地址的条目。一般来说,您无法找到它(除了一些协议(如http(s))中的一些提示)。在

给定上述格式的区域文件,您可以做类似于。。。在

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)

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

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

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

相关问题 更多 >

    热门问题