3

私はstackoverflowに関するこの素晴らしい投稿を経験しました

IP アドレスが 0.0.0.0 またはマルチキャスト アドレスでないことを検証します

しかし、これは自分の aspx ページに記述しなければならないカスタム JavaScript 関数です。代わりに、マルチキャスト 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 に答える