我在stackoverflow上经历了这篇精彩的帖子
Validate IP address is not 0.0.0.0 or multicast address
但这是一个自定义的javascript函数,我必须在我的aspx页面中编写,而不是这有任何正则表达式等效,可能有助于验证多播ip-address
e.g。组播IP地址在224.0.0.1和239.255.255.255之间
提前感谢您的努力。 :)
答案 0 :(得分:13)
就个人而言,我会使用数学,但如果你真的想要一个正则表达式,
^2(?:2[4-9]|3\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d?|0)){3}$
<---|------|--> <-----> <------> <---> <------> | |
| | | | | | | three more octets
| | | | | | |
| | | | | | 0
| | | | | |
| | | | | 1 - 99
| | | | |
| | | | 100 - 199
| | | |
| | | 200 - 249
| | |
| | 250 - 255
| |
| 230 - 239
|
224 - 229
答案 1 :(得分:1)
最佳解决方案是将javascript代码从此处移植到:Validate IP address is not 0.0.0.0 or multicast address到c#。正则表达式不适合检查数字范围。您可以编写涵盖所有可能的数字组合的正则表达式,但结果将是巨大且无效的。