Community.Dns 过滤器指南
community.dns 集合 提供了几个用于处理 DNS 名称的过滤器
community.dns.get_public_suffix:给定一个域名,返回公共后缀;
community.dns.get_registrable_domain:给定一个域名,返回可注册域名;
community.dns.remove_public_suffix:给定一个域名,返回公共后缀之前的部分;
community.dns.remove_registrable_domain:给定一个域名,返回可注册域名之前的部分。
这些过滤器允许使用 公共后缀;公共后缀 是一个 DNS 后缀,用户可以在其下直接注册名称。它们使用 公共后缀列表,这是一个 Mozilla 发起的社区资源维护的项目,旨在列出所有此类公共后缀。公共后缀的常见示例是 .com
、.net
,以及更长的后缀,例如 .co.uk
或 .github.io
。
公共后缀之前的标签以及后缀一起被称为可注册域名或已注册域名,因为这些通常是人们可以注册的名称。可注册域名的示例是 example.com
和 example.co.uk
,而 www.example.com
不是可注册域名。公共后缀本身也不是可注册域名,例如 github.io
。
该集合还包含用于处理 TXT 记录的过滤器
community.dns.quote_txt:将字符串引用为 TXT 记录使用;
community.dns.unquote_txt:从(已引用)TXT 记录中提取值。
使用公共后缀
community.dns.get_public_suffix 和 community.dns.remove_public_suffix 过滤器允许从 DNS 名称中提取和删除公共后缀
- assert:
that:
- >-
"www.ansible.com" | community.dns.get_public_suffix == ".com"
- >-
"some.random.prefixes.ansible.co.uk" | community.dns.get_public_suffix == ".co.uk"
- >-
"www.ansible.com" | community.dns.remove_public_suffix == "www.ansible"
- >-
"some.random.prefixes.ansible.co.uk" | community.dns.remove_public_suffix == "some.random.prefixes.ansible"
过滤器还允许附加选项(关键字参数)
- keep_unknown_suffix:
布尔值,默认值为
true
。这将未知顶级域名视为有效的公共后缀。例如,如果此值为true
,则example.tlddoesnotexist
的公共后缀为.tlddoesnotexist
。如果设置为false
,则在这种情况下它将返回空字符串。此选项对应于是否使用公共后缀列表中的全局通配符规则*
。- icann_only:
布尔值,默认值为
false
。这控制是否仅使用公共后缀列表中 ICANN 部分的条目,或者也使用 Private 部分的条目。例如,.co.uk
位于 ICANN 部分,但github.io
位于 Private 部分。- normalize_result:
(仅适用于 community.dns.get_public_suffix)布尔值,默认值为
false
。这控制结果是否从查找过程中使用的规范化名称重建。在规范化过程中,ulabels 转换为 alabels,并且每个标签都转换为小写。例如,ulabelëçãmplê
转换为xn--mpl-llatwb
(puny-code),而Example.COM
转换为example.com
。- keep_leading_period:
(仅适用于 community.dns.get_public_suffix)布尔值,默认值为
true
。这控制是否保留公共后缀的前导句点。- keep_trailing_period:
(仅适用于 community.dns.remove_public_suffix)布尔值,默认值为
false
。这控制是否保留前缀(即公共后缀之前的部分)的尾随句点。
使用可注册域名
community.dns.get_registrable_domain 和 community.dns.remove_registrable_domain 过滤器允许从 DNS 名称中提取和删除可注册域名
- assert:
that:
- >-
"www.ansible.com" | community.dns.get_registrable_domain == "ansible.com"
- >-
"some.random.prefixes.ansible.co.uk" | community.dns.get_registrable_domain == "ansible.co.uk"
- >-
"www.ansible.com" | community.dns.remove_registrable_domain == "www"
- >-
"some.random.prefixes.ansible.co.uk" | community.dns.remove_registrable_domain == "some.random.prefixes"
过滤器还允许附加选项(关键字参数)
- keep_unknown_suffix:
一个布尔值,默认值为
true
。这将未知的顶级域名 (TLD) 视为有效的公共后缀。例如,如果此值为true
,则example.tlddoesnotexist
的公共后缀为.tlddoesnotexist
,因此www.example.tlddoesnotexist
的可注册域名是example.tlddoesnotexist
。如果设置为false
,则www.example.tlddoesnotexist
的可注册域名是tlddoesnotexist
。此选项对应于公共后缀列表中是否使用全局通配符规则*
。- icann_only:
布尔值,默认值为
false
。这控制是否仅使用公共后缀列表中 ICANN 部分的条目,或者也使用 Private 部分的条目。例如,.co.uk
位于 ICANN 部分,但github.io
位于 Private 部分。- only_if_registerable:
一个布尔值,默认值为
true
。这控制了在公共后缀前面没有标签的情况下的行为。如果DNS名称本身就是一个公共后缀,就会出现这种情况。如果设置为false
,则在这种情况下,公共后缀将被视为可注册域名。如果设置为true
(默认值),则公共后缀的可注册域名将被解释为空字符串。- normalize_result:
(仅适用于 community.dns.get_registrable_domain) 一个布尔值,默认值为
false
。这控制着结果是否由查找过程中使用的规范化名称重建。在规范化过程中,ulabel 将转换为 alabel,并且每个标签都将转换为小写。例如,ulabelëçãmplê
将转换为xn--mpl-llatwb
(Punycode),而Example.COM
将转换为example.com
。- keep_trailing_period:
(仅适用于 community.dns.remove_registrable_domain) 一个布尔值,默认值为
false
。这控制着前缀(即可注册域名之前的部分)的尾随句点是否保留。