C#IP范围过滤器
我想从我的*.aspx中排除特定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
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()
对于我的实现来说是不必要的。