c# IP范围过滤器

本文关键字:过滤器 范围 IP | 更新日期: 2023-09-27 18:13:45

我想从我的*中排除内容。

指定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}

我在正则表达式方面很弱,所以我作弊并使用谷歌的IP范围工具得到了模式

在这个例子中,它没有有效地阻塞12.345.678.254

我错过了什么?

提前感谢!

c# IP范围过滤器

你不应该转义正则表达式:

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

ipRange

如果转义,则所有字符都变为文字,因此例如[0-9]不再匹配0到9中的数字,而是匹配由[, 0, -, 9, ]组成的字符串。