我需要确定用户输入的域名是否为标准域名,例如example.co.uk
,还是仅包含TLD,例如co.uk
。
有没有办法可以做到这一点,例如通过使用nslookup
或dig
命令查询名称服务器?
仅仅是为了背景,我正在构建一个适用于子域的工具,例如: sub.domain.example.co.uk
并且需要能够将子域的每个部分分散到子域,域和TLD部分。
谢谢,
汤姆
答案 0 :(得分:2)
您试图解决的“问题”甚至没有明确定义。
无法从DNS本身获取此信息。 DNS不区分您所谓的子域,域和TLD。
浏览器制造商和其他相关方显然没有找到任何解决方案building and maintaining a list manually。甚至那是一个不完整的解决方案。例如,我知道在加拿大,您可以将域名注册为<your-label>.ca
,<your-label>.<province>.ca
或<your-label>.<municipality>.<province>.ca
,但current version of Mozilla's list仅会考虑前两种可能性。 (无论如何,列出所有城市都会过于繁琐)。
更重要的是,什么是“公共”域和“私有”域之间的界限不是技术域。除非您是日本的大学(或类似机构),否则您不应该在ac.jp
下注册域名。除非您是东大(或类似)内的部门,否则您不应该在u-tokyo.ac.jp
下注册域名。这两个限制在技术层面上并没有根本的不同,但其中一个域被认为是“公共”而另一个则不是。这是政治/法律的差异。
此外,如果出于安全目的使用公共/私有域的区别(例如在Web浏览器中用于禁止supercookies),谁说一所大学内的不同部门不会相互不信任不同的大学呢?有一条众所周知的建议适用:你不应试图通过技术解决方案解决政治问题。