REGEX用于组播IP地址

时间:2012-10-30 18:25:43

标签: asp.net regex ip-address multicast

我在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之间

提前感谢您的努力。 :)

2 个答案:

答案 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#。正则表达式不适合检查数字范围。您可以编写涵盖所有可能的数字组合的正则表达式,但结果将是巨大且无效的。