如何顶级域名判断

我们这里只考虑英文字母的域名情况,并且不考虑后来开放申请之后类似与.google、.youtube之类的奇葩域名。

通过观察我们容易得到如下结论:
1、我们用.将域名分成好多段,那么主域名只可能有两段或者三段;
2、主域名的名称后面,有三种情况,跟着通用顶级域名(zhihu.com)、跟着国家顶级域名(12306.cn)和跟着两段顶级域名的(sina.com.cn)。

还有以下事实:
1、通用顶级域有Generic top-level domain中所列的22个;
2、国家顶级域名按照国际标准ISO 3166-1 alpha-2只分配两个字母(英国佬比较奇葩,标准中规定他们用.gb,但是他们更喜欢用.uk,实际上两个都是他们的)。

所以,如果最后一节是两个字符,那么可以判定为是国家顶级域名,然后往前看一节,如果这一节不是通用顶级域名,那么我们把最后两节当作主域名;如果是,那么我们把最后三节当作主域名。

如果最后一节不是两个字符,那么我们把最后两节当作主域名。

两种情况的流程合并之后,就是我们直接看域名的倒数第二节,如果这一节是通用顶级域名,那么我们把最后三节当成主域名,否则我们只把最后两节当成主域名。

另外说明一下特例:
1、部分国家会使用不在通用顶级域名之中的二级域,例如bbc.co.uk,我们只要把.co当作加到通用顶级域名的列表里面就可以正常处理得到bbc.co.uk
2、 不少教科书上都写了.ac是科研机构的顶级域名,但同时也是英属阿森松岛的国家顶级域名。可以加入到通用顶级域名列表里面,如果在倒数第二节发现该域名, 那么可以判定为某国研究机构的域名;如果在最后一节中发现,并且倒数第二节中还出现.com之类的域名,那么显然不是研究机构。判断逻辑与上述逻辑无差。

--------
谢邀,我能想到的是,即使你把顶级域名全部列举了,还是没有办法判定像中华人民共和国中央人民政府门户网站这样的域名,到底哪个部分是顶级域名。所以,大致的思路只能是顶级域名列表加上特例列表。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值