.net-寻找用于主机名/计算机名验证的正则表达式/代码

寻找主机名验证正则表达式.

Regular expression to match DNS hostname or IP Address?

在这一方面,先生们提出了一个不错的正则表达式.我对此有一些问题/疑问:

>在Windows计算机/网络名称上
如1abcd被允许(在
我们的本地网络)
>在建议的正则表达式中,点可能仅出现一次.我想
abc.def.gh是有效的主机名
也是吗?

很奇怪,但是也找不到任何可以验证主机名字符串的.NET类(是这种情况吗?).任何建议将不胜感激.

更新:对于任何类/方法建议-请提出一些在.NET / C#和SilverLight中都可以使用的建议.

最佳答案

In the proposed regex the dot might
appear only once. I’d assume that
abc.def.gh is a valid hostname as
well, isn’t it.

点可能会出现多次.测试正则表达式here,您将看到它匹配.

正则表达式的相关片段(第一部分是):

([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*

On windows computers/networks names
like 1abcd are allowed (verified on
our local network)

wikipedia开始:

The original specification of
hostnames in 07002, mandated that
labels could not start with a digit or
with a hyphen, and must not end with a
hyphen. However, a subsequent
specification (07003) permitted
hostname labels to start with digits.

我指的是RFC 952.我将尝试更新正则表达式以使主机名与RFC 1123兼容.

转载注明原文:.net-寻找用于主机名/计算机名验证的正则表达式/代码 - 代码日志