【问题标题】:How to delete a dynamic DNS record using Python or Bash?如何使用 Python 或 Bash 删除动态 DNS 记录?
【发布时间】:2013-05-09 15:09:13
【问题描述】:

以下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 条目。

【问题讨论】:

  • 使用delete() 方法。它在文档中,就在 replace() 方法之前。 dnspython.org/docs/1.10.0/html
  • 谢谢,我一定是瞎了眼!我什至没有想到要检查 Update 类的其余方法!

标签: python dns


【解决方案1】:

dns.update.Updatedelete() 方法可用于删除记录。

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

keyring = dns.tsigkeyring.from_text({'host-example.' : 'XXXXXXXXXXXXXXXXXXXXXX=='})
update = dns.update.Update('dyn.test.example', keyring=keyring)
update.delete('host', 'A')
response = dns.query.tcp(update, '10.0.0.1')

【讨论】:

  • 谢谢。但是我无法使用这种方法删除源或“@”区域的 NX 和 MX 记录。任何指针?谢谢
  • 会不会是您在删除时忘记了特定 MX 或 NS 记录的距离和/或内容?
【解决方案2】:

dns.update.Update 的删除方法总是将名称作为第一个参数。其他参数可以是:

  • 什么都没有
  • rdataset...
  • rdata...
  • 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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2013-10-21
    • 2021-05-18
    相关资源
    最近更新 更多