超过 3 级的主机名中的 "subdomain" 和 "subdomains" 是什么?

What is the "subdomain" and "subdomains" in hostname with more than 3 levels?

该术语对于子域分析库中的变量命名至关重要。

如果您需要正确的术语,现在只有一个很好的来源:

RFC 8499 DNS Terminology

TL;DR: 任何域都是任何其他域(根域除外)的子域,子域也是域。

一个字符串既不是也不是两者都取决于你如何看待它。只有当你比较事物时,“子”部分才会出现。

但回到 RFC,您可以阅读:

Subdomain: "A domain is a subdomain of another domain if it is contained within that domain. This relationship can be tested by seeing if the subdomain's name ends with the containing domain's name." (Quoted from [RFC1034], Section 3.1) For example, in the host name "nnn.mmm.example.com", both "mmm.example.com" and "nnn.mmm.example.com" are subdomains of "example.com". Note that the comparisons here are done on whole labels; that is, "ooo.example.com" is not a subdomain of "oo.example.com".

你的情况:

  • foo.example.comexample.com
  • 的子域
  • en.foo.example.comfoo.example.comexample.com 的子域。

请注意,在所有这一切中,有一个重要的点经常被遗忘:点分隔标签但不映射 1:1 区域切割或管理更改。只看名字,比如 en.foo.example.com,你无法知道 en.foo.example.com 是否由与 foo.example.comexample.comcom 相同的 company/DNS 基础设施管理甚至。

您只能通过进行实时 DNS 查询或使用 Public 后缀列表等启发式方法来找出答案。

至于:

This terminology is critical for the variables naming in the subdomains analyzing library.

强烈建议:不要使用“子域”一词。名称是标签列表,您可以通过这种方式管理事物(这是您选择的语言列表)。这是唯一重要的事情,您只需查看字符串即可轻松得出,而无需与其他任何东西进行比较。 (专业提示:注意名称和大小写中可能的最后一个点,但这也取决于您是否必须处理 IDN)。