【发布时间】:2011-11-16 16:43:28
【问题描述】:
我正在编写一个正则表达式来验证电子邮件。唯一让我感到困惑的是:
顶级域名可以有单个字符吗?(例如:lockevn.c)
背景:我知道顶级域名可以从 2 个字符到任何字符(.uk、.us 到 .canon、.museum)。我阅读了一些文件,但我不知道它是否允许 1 个字符。
【问题讨论】:
标签: dns
我正在编写一个正则表达式来验证电子邮件。唯一让我感到困惑的是:
顶级域名可以有单个字符吗?(例如:lockevn.c)
背景:我知道顶级域名可以从 2 个字符到任何字符(.uk、.us 到 .canon、.museum)。我阅读了一些文件,但我不知道它是否允许 1 个字符。
【问题讨论】:
标签: dns
这在技术上是可行的,但是,没有单个字符 tld 已被接受到根目录中(截至目前),因此答案是:
可以,顶级域名可以有单个字符,但是,目前没有 strong> 根中的单字符 TLD。
您可以在此 URL 中查看当前位于根目录中的 TLD 列表:
RFC-952 显示了“名称”是什么,这包括作为顶级域的有效内容:
A "name" (Net, Host, Gateway, or Domain name) is a text string up
to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
sign (-), and period (.).
此外,来自 RFC-952 的语法显示:
<name> ::= <let>[*[<let-or-digit-or-hyphen>]<let-or-digit>]
RFC-1123 第 2.1 节特别允许单字母域和子域,将 RFC-952 的初始语法从仅以字母开头更改为更加宽松,因此现在您可以拥有单字母顶级域号码:
2.1 Host Names and Numbers
The syntax of a legal Internet host name was specified in RFC-952.
One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit. Host software MUST support this more liberal
syntax.
编辑:根据@mr.spuratic 的评论,RFC-3696 第 2 节收紧了顶级域的规则,声明:
There is an additional rule that essentially requires
that top-level domain names not be all-numeric.
这意味着:
对此的一个非常不科学的测试表明,如果我将“a”添加到指向我的本地计算机的 hosts 文件中,则转到地址栏中的 http://a 会显示我的 Apache 欢迎页面。
【讨论】:
【讨论】:
您应该绝对允许 1 个字符的域,因为某些注册管理机构允许它们并非偶然(我也提到了英国、德国、波兰、爱尔兰等相当大的注册管理机构 - 对互联网社区如此重要的贡献者,而不是任何异国情调的小例外)。由于我还计划使用这样的域,它肯定也适用于我使用的所有电子邮件服务、字母和数字,我真的会给出允许这样做的提示,否则你的脚本可能需要稍后更正。
一些最大的互联网公司也使用此类域 - 最著名的例子之一是 Twitters t.co 用于缩短。据我所知,拥有此类域名的其他公司包括 Facebook、谷歌、贝宝、德国电信。但名单更长,而且一些更大的投资者也将它们作为资产持有。
顺便说一句,如果您搜索“1字母域名”,则有一个网站在线交易此类域名:)
【讨论】: