3

我在stackoverflow上浏览了这篇精彩的帖子

验证 IP 地址不是 0.0.0.0 或多播地址

但这是一个自定义 javascript 函数,我必须在我的 aspx 页面中编写它,而不是有任何正则表达式等价物,它可能有助于验证多播 IP 地址

例如 224.0.0.1 和 239.255.255.255 之间的多播 IP 地址

提前感谢您的努力。:)

4

2 回答 2

14

我个人会使用数学,但如果你真的想要一个正则表达式,

^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
于 2012-10-30T18:36:57.233 回答
1

最好的解决方案是从这里移植 javascript 代码:Validate IP address is not 0.0.0.0 or multicast address to c#。正则表达式不适合检查数字范围。您可以编写涵盖所有可能的数字组合的正则表达式,但结果将是巨大的且无效的。

于 2012-10-30T18:32:10.763 回答