C#IP范围过滤器

C#IP范围过滤器,c#,asp.net,regex,C#,Asp.net,Regex,我想从我的*.aspx中排除特定IP地址范围内的用户的内容 string ipRange = @"^12\.345\.678\.(2(4[0-9]|5[0-5]))$"; if (!System.Text.RegularExpressions.Regex.IsMatch(Request.UserHostAddress.ToString(), System.Text.RegularExpressions.Regex.Escape(ipRange))){//BLOCKED CONTENT GOES

我想从我的*.aspx中排除特定IP地址范围内的用户的内容

string ipRange = @"^12\.345\.678\.(2(4[0-9]|5[0-5]))$";
if (!System.Text.RegularExpressions.Regex.IsMatch(Request.UserHostAddress.ToString(), System.Text.RegularExpressions.Regex.Escape(ipRange))){//BLOCKED CONTENT GOES HERE}
我在正则表达式方面很弱,所以我作弊并使用谷歌的

在本例中,它没有有效地阻止12.345.678.254

我错过了什么


提前感谢

您不应该逃避正则表达式:

System.Text.RegularExpressions.Regex.Escape(ipRange)
应该是:

ipRange

如果对其进行转义,所有字符都会变成文字,因此,例如
[0-9]
不再匹配0到9中的数字,而是匹配由五个字符组成的字符串
[
0
-
9
]
您不应该转义正则表达式:

System.Text.RegularExpressions.Regex.Escape(ipRange)
应该是:

ipRange

如果对其进行转义,所有字符都会变成文字,因此,例如
[0-9]
不再匹配0到9中的数字,而是匹配由五个字符组成的字符串
[
0
-
9
]
,可能不相关,但是
12.345.678.254
不是有效的IP地址…你为什么要逃跑?你的正则表达式模式很好。。。不要逃避它。@DanBreen+1用于查看细节:)可能不相关,但
12.345.678.254
不是有效的IP地址……为什么要逃避?你的正则表达式模式很好。。。不要逃避它。@DanBreen+1代表细节之眼:)就是这样。谢谢你的回答和解释!我在某个地方读到,我需要逃离来处理正则表达式中的反斜杠。我猜
.escape()
对我的实现来说是不必要的。就是这样。谢谢你的回答和解释!我在某个地方读到,我需要逃离来处理正则表达式中的反斜杠。我猜
.escape()
对于我的实现来说是不必要的。