0

私は次の問題を抱えています:私は実際にovirtサーバーがDNSから仮想マシンを登録解除することを含む仮想マシンを自動的に削除するためのスクリプトを作成しています。ただし、一部の非常に特殊な仮想マシンでは、IP アドレスの例に対して複数の FQDN があります。

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

私はpythonでソケットを使ってやろうとしましたが、答えは1つしか返されません.dnspythonでpythonも試しましたが、失敗しました。目標は、DNS サーバー上のタイプ A レコードの数をカウントすることです 誰でもこのようなことをする考えを持っていますか?

4

2 に答える 2

1

それはまったく不可能です。気分がよければ、あなたの IP アドレスを指すエントリを DNS サーバーに追加できます。一般に、それを見つけることはできません (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 は 1 秒のタイムアウトで IP からホスト名を検索します

ただし、これには、照会している DNS サーバーが PTR 逆引きレコードを正しく構成している必要があります。

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

于 2019-03-05T17:15:00.180 に答える