1

Python 更新プログラムの次のコード

import dns.query
import dns.tsigkeyring
import dns.update
import sys
 keyring = dns.tsigkeyring.from_text({'host-example.' : 'XXXXXXXXXXXXXXXXXXXXXX=='})

update = dns.update.Update('dyn.test.example', keyring=keyring)
update.replace('host', 300, 'a', sys.argv[1])

 response = dns.query.tcp(update, '10.0.0.1')

しかし、DNSエントリを削除する方法がわかりませんでした.

4

2 に答える 2

1

dns.update.Updateの delete メソッドは、常に最初の引数として名前を取ります。その他の引数は次のとおりです。

  • なし
  • rdataset...
  • データ...
  • rdtype, [文字列...]

ソース: http://www.dnspython.org/docs/1.15.0/

ドメイン _acme-challenge.example.com から「Hello World」という内容の特定の TXT レコードを削除するには:

import dns.resolver
import dns.tsigkeyring
import dns.update
import dns.query

# Create the rdata object
txt_record = dns.rdata.from_text(dns.rdataclass.IN, dns.rdatatype.TXT, "Hello World")

# Initialize a new DNS update object
update = dns.update.Update('example.com', keyring=keyring)

# Delete the specific record passing in the rdata object
update.delete('_acme-challenge', txt_record)

# Send the request
reponse = dns.query.udp(update, '10.0.0.1', timeout=10)

# Check if the TXT record was successfully removed:
answers = dns.resolver.query('_acme-challenge.example.com', 'TXT')
txt_records = [txt_record.strings[0] for txt_record in answers]
if "Hello World" in txt_records:
    print "TXT record not successfully deleted"
else:
    print "TXT record successfully deleted"
于 2016-10-28T00:47:51.950 に答える