顶级域名末尾可以包含数字吗?没有任何关于DNS规则等的信息,但当我尝试将PHP的filter_var()函数与FILTER_VALIDATE_EMAIL用于test@null.com1
时,它返回true。
答案 0 :(得分:11)
从概念上讲,在TLD和将来,没有什么可以禁止数字,谁知道,也许会有数字顶级域名。
目前还没有TLD确实存在数字 - 该功能可能不会针对已知TLD列表(因为它可能会发生变化)进行测试,但是在词汇上。
答案 1 :(得分:10)
实际上,目前使用的TLD很多都包含数字:
XN--1QQW23A XN--3BST00M XN--3DS443G XN--3E0B707E XN--45BRJ9C XN--4GBRIM XN--55QW42G XN--55QX5D XN--6FRZ82G XN--6QQ986B3XL XN--80ADXHKS XN--80AO21A XN--80ASEHDB XN--80ASWG XN--90A3AC XN--C1AVG XN--CG4BKI XN--CLCHC0EA0B2G2A9GCD XN--CZR694B XN--CZRU2D XN--D1ACJ3B XN--FIQ228C5HS XN--FIQ64B XN--FIQS8S XN--FIQZ9S XN--FPCRJ9C3D XN--FZC2C9E2C XN--GECRJ9C XN--H2BRJ9C XN--I1B6B1A6A2E XN--IO0A7I XN--J1AMH XN--J6W193G XN--KPRW13D XN--KPRY57D XN--KPUT3I XN--L1ACC XN--LGBBAT1AD8J XN--MGB9AWBF XN--MGBA3A4F16A XN--MGBAAM7A8H XN--MGBAB2BD XN--MGBAYH7GPA XN--MGBBH1A71E XN--MGBC0A9AZCG XN--MGBERP4A5D4AR XN--MGBX4CD0AB XN--NGBC5AZD XN--NQV7F XN--NQV7FS00EMA XN--O3CW4H XN--OGBPF8FL XN--P1AI XN--PGBS0DH XN--Q9JYB4C XN--RHQV96G XN--S9BRJ9C XN--SES554G XN--UNUP4Y XN--VHQUV XN--WGBH1C XN--WGBL6A XN--XHQ521B XN--XKC2AL3HYE2A XN--XKC2DL3A5EE0H XN--YFRO4I67O XN--YGBI2AMMX XN--ZFR164B
您可以在此处查看最新列表data.iana.org/TLD/tlds-alpha-by-domain.txt或此处包含说明的列表swcs.com.au/tld.htm
答案 2 :(得分:5)
顶级域名的末尾可以包含数字吗?
从技术上讲是肯定的,除非它是纯数字形式,否则在当前规则下并且出于易于理解的目的(不能与IP地址混淆),它不能是TLD。而且它的末尾不能包含数字,除非它是IDN TLD(出于ICANN强制执行的原因)。
让我们回到一些RFC来对事物进行更清晰的定义:
这是当时互联网“主机名”的定义:
“名称”(网络,主机,网关或域名)是向上的文本字符串
最多24个字符,从字母(A-Z),数字(0-9),减
符号(-)和句点(。)。请注意,只有在
时才允许使用句点 它们用于界定“域名样式名称”的组成部分。 (请参见
RFC-921,“域名系统实施时间表”,用于
背景)。不允许将空格或空格字符作为 名称。大写和小写之间没有区别。首先 字符必须是字母字符。最后一个字符不能为 减号或减号。
请注意,还有:
单个字符名称 或昵称是不允许的。
从那时起:
com1
是有效的TLD 3com
不是(“第一个字符必须是字母字符。”)42
不是(相同原因)1
不是(相同原因)a
不是(“不允许使用单个字符名或昵称。”)这是今天创建DNS的RFC之一。出于兼容性原因,它将主机名定义为标签序列,其中标签的定义如下:
它们必须以字母开头,以字母或数字结尾,并且以 内部字符只能是字母,数字和连字符。也有 在长度上有一些限制。标签必须为63个字符或 更少。
TLD是其中的一个标签。根据上述规则,com1
是有效标签,因此是TLD,而3com
则不是。直接将我们带入以下修订。
这通过更改一个规则来修改以前的RFC:
合法的Internet主机名的语法在RFC-952中指定 [DNS:4]。主机名语法的一个方面已更改: 放宽了对第一个字符的限制,以允许 字母或数字。主机软件必须支持这种更加自由的 语法。
所以在这一点上:
com1
是有效的TLD 3com
也是有效的42
有效1
有效a
有效对于“数字” TLD,适用第一个文档中的以下规则:
无论何时用户输入Internet主机的身份,都应该 可以输入(1)主机域名或(2)IP 点分十进制(“#。#。#。#”)格式的地址。主机应该检查 语法上以点分十进制数开头的字符串 在域名系统中查找它。
和
如果可以输入不带小数点的数字 确定定界符,则必须进行完整的语法检查 之所以这样做,是因为现在允许使用主机域名的一部分 以数字开头,并且在法律上可以完全是数字 (请参阅第6.1.2.4节)。但是,有效的主机名永远不能 具有点分十进制格式#。#。#。#,因为至少 最高级别的组件标签将按字母顺序。
这也谈到了TLD,但给出了
网络主机的全限定域名或其IP 地址是一组四个十进制数字组,由 “。”。完全合格的域名采用上述形式 在RFC 1034 [13]的3.5节和RFC 1123的2.1节中 [5]:由“。”分隔的域标签序列,每个域 标签以字母数字字符开头和结尾,并且 可能还包含“-”字符。最右边的域 标签永远不会以数字开头, 从语法上区分所有域名和IP 地址。
这是引入IDN(国际化域名)所必需的,它的意思是:
任何字符或位组合(以八位字节为单位)均允许在 DNS名称。但是,有一种首选形式需要 大多数应用。此首选形式是唯一的一种 顶级域或TLD的名称中允许。一般而言 也是大多数注册的第二级名称中唯一允许的格式 在顶级域名(TLD)中,尽管某些通常不被用户看到的名称遵循 其他规则。它源自原始的ARPANET规则, 主机的命名(即“主机名”规则),可能更好 在其允许的字符之后,称为“ LDH规则”。 LDH规则(已更新)规定标签(单词或字符串 由句点分隔的)组成域名必须仅包含 ASCII [ASCII]字母和数字字符以及连字符。 不允许使用其他符号或标点符号,也不允许 空格处。如果使用连字符,则不允许出现在 标签的开头或结尾。还有一条附加规则 这本质上要求顶级域名不应该全部都是- 数字。
实际上,一旦涉及到IDN并且它们是IDN TLD(现在是ccTLD和gTLD),则选择的编码将生成xn--something
形式的ASCII字符串,其中的东西可以有数字,包括结束,就像其他答案所示。
但是,最后一句话中的“附加规则”来自何处尚不清楚。
未定义任何内容,但提供了一些有趣的事实:
根名称服务器收到大量A记录 查询QNAME看起来像IPv4地址的位置。
和
可能的解决方案是委派这些数字TLD 从根区域到另一套服务器以吸收 交通。
清楚地表明确实有一些应用程序,也许是由于错误而引起的,但至少表明它在技术上可行,它发送的查询名称的确像IPv4地址一样格式化,因此带有全数字的“ TLD”
事实上,有一种启动.42
注册中心的经验,显然完全不在ICANN生态系统之外。您可以在http://www.dotsauce.com/experimental-numeric-tld-42-domain/上看到它的摘要,并在https://web.archive.org/web/20101222151118/http://register.42registry.org:80/上看到它们的主要解释的存档(法文)。
即使技术上可行,它也没有走得很远。
例如,它表明默认情况下,基于Microsoft的操作系统根本不考虑纯粹的数字TLD,但是他们为此提供了补丁:https://support.microsoft.com/en-us/help/947228/error-message-when-you-try-to-join-a-windows-vista-based-client-comput“当您尝试将基于Windows Vista的客户端计算机加入到具有纯数字后缀的顶级域(TLD),基于Windows Vista的客户端计算机无法加入域。[..]此行为是设计使然。“
最后,这给出了一些解释,说明为什么纯数字TLD或什至只有一位数字的TLD有时在上述说明没有明确的结果时有时被认为是无效的:
(下面的第2.1节指的是上面引用的RFC 1123中的内容)
此外,第2.1节的“讨论”部分说:
'However, a valid host name can never have the dotted-decimal form #.#.#.#, since at least the highest-level component label will be alphabetic.' [Section 2.1]
一些实施者可能已经理解上述短语“将 字母”是协议的限制。
但是基本上,它只是建议顺其自然,并继续相同的限制:
[RFC0952]和[RFC1123]均未明确说明造成这种情况的原因 这些限制。可以认为人为因素是 考虑; [RFC1123]似乎表明原因之一 是为了防止点分十进制IPv4地址和 主机域名。无论如何,我们有理由相信 已在某些已部署的软件中假定了限制,并且 更改规则时应谨慎行事。
因此它提供了以下定义:
traditional-tld-label = 1 * 63(ALPHA)
该草案从未转换为RFC,因为并非所有人都同意。您可以在https://www.ietf.org/mail-archive/web/dnsop/current/msg08866.html上找到一个声音不同的话题;基本上还不清楚,过去是否存在限制,我们现在尝试放松一下,还是从没有限制开始,人们是否错误地实施了系统。
例如,您可以看到有关Chromium / Chrome错误报告的信息:https://bugs.chromium.org/p/chromium/issues/detail?id=31405 如果使用以数字或纯数字开头的TLD,则浏览失败(如果以以字母开头的数字结尾,则正常工作)。这没有被视为错误,也没有得到解决,因为浏览器附带了一系列TLD,因此除了测试其语法之外,还能知道哪些有效,哪些无效。
在https://newgtlds.icann.org/en/applicants/agb/guidebook-full-04jun12-en.pdf有售 它从第64页开始显示以下内容:
ASCII标签(即,在电线上传输的标签)必须按照技术标准中的规定有效:域名:实施和规范(RFC 1035),以及对DNS规范的澄清(RFC 2181)及其任何更新。
ASCII标签必须是有效的主机名,如技术标准DOD Internet主机表规范(RFC 952),Internet主机的要求-应用和支持(RFC 1123)以及用于检查和转换Internet的应用技术中所指定的名称(RFC 3696),应用程序中的国际化域名(IDNA)(RFC 5890-5894)及其任何更新。这包括以下内容:
ASCII标签必须完全由字母(字母字符a-z)或
组成标签必须是有效的IDNA A标签(进一步限制,如以下第二部分所述)。
请特别注意: ASCII标签必须完全由字母(字母字符a-z)组成
这立即禁止使用任何完整的数字以及实际上包括末尾的任何数字,但IDN TLD除外,其形式为xn--something
。
请注意,有人直接向ICANN询问了此问题,并得到了以下答复,如https://domaingang.com/domain-news/icann-applicant-handbook-this-is-why-we-cannot-have-numeric-gtlds/所示:
请注意,第一轮申请禁止使用数字TLD。 申请人指南(http://newgtlds.icann.org/en/applicants/agb)中对数字通用顶级域名(gTLD)的禁止源自与此类域名正常运行能力有关的许多技术问题。域名通常用于可能会使用其他类型标识符(例如IP地址)的地方。
TLD完全是字母的事实通常是确定域名的软件的关键决定因素。如果允许使用诸如“ .123”之类的TLD,则您的域名可能为“ 74.125.244.123”,这很难与IP地址“ 74.125.244.123。”区分开。还有其他考虑因素:一些技术标准文档指出,顶级域名(TLD)将按字母顺序排列,也已在软件中作为假设进行了编纂。
AGB中字母字符的限制旨在限制这些情况,这意味着此类TLD在软件中不太可能很好地工作,并限制了由相同问题引起的潜在安全问题。