【问题标题】:DNS Python, use 'relativize', but prevent replacing full names with '@'DNS Python,使用'relativize',但防止用'@'替换全名
【发布时间】:2020-02-07 11:42:40
【问题描述】:

我在 DirectAdmin 的插件中使用 DNS Python。 在处理绑定文件并在 DNS Python 的 from_file() 函数中使用 relativize=False 时,记录的每个名称都会完整显示,(例如,'smtp.example.com.')

我更喜欢在该子域的情况下仅显示“smtp”的概述。这可以通过在from_file() 函数中使用relativize=True 来实现。但是,在这种情况下,所有完整的 dns 名称('example.com')都将替换为 @(at 符号)

我可以配置 DNS python 以相对化子域,但显示完整的 dns 名称而不只显示@

【问题讨论】:

  • 解析结果并删除@怎么样?返回的记录是什么类型的?
  • 一个肮脏的解决方法是用re.sub(r'^@', domain_name, line) 替换区域文件中的行。我更喜欢在我的应用程序中使用受支持/官方的 dnspython 方式来执行此操作。此问题影响区域的所有记录,与记录类型无关,如果域与 dns 名称完全匹配,则 dnspython 的符号将更改为 '@' 而不是域名。

标签: dnspython


【解决方案1】:

符号@ 用于DNS 数据格式。请参阅RFC1035 第 5.1 段:

一个独立的@用于表示当前原点。

因此使用@ 作为当前区域名称是标准的。如果需要,您可以将@ 替换为区域(域名)名称。虽然将相对域名和完整域名混合在一起很奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 2021-05-29
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多