簡體   English   中英

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

[英]Get all FQDN for an IP address in python

我有以下問題:我實際上是在為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型記錄的數量。有人有想法做這樣的事情嗎?

那是絕對不可能的。 如果心情合適,我可以在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)

注意:可以像這樣使用套接字- 通過IP進行Python查找主機名,超時時間為1秒

但是,這確實要求您查詢的DNS服務器已正確配置了PTR反向記錄。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM