寻找主机名验证正则表达式。
Regular expression to match DNS hostname or IP Address?
在这一方面,先生们提出了一个不错的正则表达式。我对此有一些问题/疑问:
在Windows计算机/网络名称上
允许1abcd
之类的(已在
我们的本地网络)
在建议的正则表达式中,点可能仅出现一次。我想abc.def.gh
是有效的主机名
也是,不是吗?
很奇怪,但是也找不到任何可以验证主机名字符串的.NET类(是这种情况吗?)。任何建议将不胜感激。
更新:对于任何类/方法建议-请提出一些在.NET / C#和SilverLight中都可以使用的建议。
最佳答案
在建议的正则表达式中,点可能
只出现一次。我认为
abc.def.gh是有效的主机名,
好吧,不是吗。
点可能会出现多次。测试正则表达式here,您将看到它匹配。
正则表达式的相关片段(第一部分是):
([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*
在Windows计算机/网络名称上
如1abcd被允许(在
我们的本地网络)
从wikipedia:
原始规格
RFC 952中的主机名要求
标签不能以数字开头或
带有连字符,并且不能以
连字符。但是,随后
允许规格(RFC 1123)
主机名标签以数字开头。
我提到了RFC 952。我将尝试更新主机名的正则表达式,使其与RFC 1123兼容。