别拿dk不当域名

朋友给我一个链接:

http://dk./

说「看,世界上最短的域名」。

看到 dk. 这个东西,我的第一感觉是「这也是个域名吗?」

第二感觉是「这是个合法的域名吗?」

点击之后,发现网页转到 https://www.dk-hostmaster.dk/ ,一个丹麦网站。

千真万确,dk. 是一个合理的域名。

我很奇怪,因为原来以为域名都是一堆单词,用点号隔开。而这个域名点号出现在最末尾,这是我以前没见过的。

因为维基百科上有如下解释:

域名(英语:Domain Name),又称网域、网域名称,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

然后去 Google 上搜域名的规则,看到一篇文章中给出的比较通用的检测域名的正则表达式:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

请注意结尾有 .? 。也就是说,一个完整域名的结尾可以有 1 个或 0 个点号。

这篇文章中还提到:

而完整的域名至少包括两个名字(比如google.com,由google和com构成),最后可以有一个表示根域的点(在规范中,最后有一个点的才是完整域名,但一般认为包括两个以上名字的域名也是完整域名,哪怕它后面没有点)。

恍然大明白。原来标准域名最后是应该有个点号的。又一个朋友提醒我,进行域名解析时,一般会在域名结尾加个点。

看了一下确实如此。( 好像是 NS 记录、CNAME 记录都会给域名加个点,而 URL 转发不会。 )

既然域名最后可以有个点,那么无点也应该是个合法的域名,也就是说,dk 也应该是一个域名了?

果然,在终端执行 ping dk,得到如下结果:

% ping dk
PING dk (193.163.102.24): 56 data bytes

得到 193.163.102.24 这个 ip。我们再执行 ping www.dk-hostmaster.dk,会得到相同的 ip:

% ping www.dk-hostmaster.dk                                                 2 ↵
PING www.dk-hostmaster.dk (193.163.102.24): 56 data bytes

还有一个更直接的证据证明 dk 确实是一个域名,你可以执行一下 wget dk:

% wget dk                                                                   2 ↵
--2014-04-29 22:26:52--  http://dk/
Resolving dk... 193.163.102.24, 2a01:630::40:b1a:b1a:2011:1
Connecting to dk|193.163.102.24|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.dk-hostmaster.dk/ [following]
--2014-04-29 22:26:54--  https://www.dk-hostmaster.dk/
Resolving www.dk-hostmaster.dk... 193.163.102.24, 2a01:630::40:b1a:b1a:2011:1
Connecting to www.dk-hostmaster.dk|193.163.102.24|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html'

    [  <=>                                  ] 14,367      28.4KB/s   in 0.5s

    2014-04-29 22:26:59 (28.4 KB/s) - 'index.html' saved [14367]

不仅找到了域名的 ip,还把首页给下载了下来。因为 wget 的参数是一个域名,所以,dk 无疑是一个合理的域名了。

那为什么有人在浏览器地址栏输入 dk 并回车,打不开对应的网站呢?

可能是浏览器的问题吧。我在 Chrome 里 输入 dk 并回车,可以打开之前提到过的那个丹麦网站。

那为什么 com, net, cn 什么的,不能像 dk 一样能打开或者能 ping 到 ip 呢?

可能是人家没解析吧?

综上,dk 短短两个字母,却也是一个域名。

阅读 33