正则表达式 – 完全限定域名验证

如果输入正确的FQDN,是否有快速而肮脏的方式进行验证?请记住,没有DNS服务器或Internet连接,因此验证必须通过regex / awk / sed完成。

有任何想法吗?

现在更难了,国际化的域名和几千(!)个新的TLD。

容易的部分是您仍然可以在“。”上分割组件。

您需要可注册TLD的列表。有一个网站:

https://publicsuffix.org/list/effective_tld_names.dat

您只需检查ICANN认可的。请注意,可注册TLD可以有多个组件,如“co.uk”。

然后有IDN和punycode。域现在是Unicode。例如,

“xn – nnx388a”相当于“台湾”。这两个都是有效的TLD。

对于punycode转换代码,请参见“http://golang.org/src/pkg/net/http/cookiejar/punycode.go”。

检查每个域组件的语法也有新的规则。参见RFC5890
http://tools.ietf.org/html/rfc5890

组件可以是A标签(仅限ASCII)或Unicode。
ASCII标签遵循旧的语法,或者开始“xn--”,在这种情况下,它们是一个punycode
Unicode字符串的版本。

Unicode的规则非常复杂,并在RFC5890中给出。这些规则旨在防止从左到右和从右到左的集合混合字符。

对不起,没有简单的答案。

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...