【发布时间】:2015-10-18 12:05:07
【问题描述】:
在我的应用程序中,用户输入 ip 地址 + 子网掩码,如下所示: 192.168.0.0/16 或 80.80.80.0/24 我想像这样验证它:
- 如果 ip 地址不是有效地址,则返回 false。(它简单且
我可以用
IPAddress.TryParse方法做到这一点) - 如果IP地址不是公共地址则返回 假。(192.168.0.0/16=假)
- 如果子网掩码无效。(不在 0 到 32 之间)。
我是 C# 新手,如果您能告诉我验证 IP 地址的最佳方法,我将不胜感激。 谢谢。
【问题讨论】:
-
您可以使用正则表达式。看这篇文章blog.markhatton.co.uk/2011/03/15/…
-
谢谢。但我不喜欢使用正则表达式。
-
在这种情况下,简单的字符串拆分不需要正则表达式。我会先围绕“/”拆分,然后围绕句点拆分。
-
您真的接受子网掩码 0 吗?这实际上意味着“整个 IPv4 互联网,包括私有地址范围”。
-
其实是的。这意味着所有IP地址都可以访问Web服务。
标签: c#