Regex 如何使用Subnetmask为IP地址生成正则表达式?
我的IP地址列表如下: 180.183.0.0/16 180.210.216.0/22 180.214.192.0/19 182.52.0.0/15 ...(400 more) 180.183.0.0/16 180.210.216.0/22 180.214.192.0/19 182.52.0.0/15 …(400多个) 如何使用Subnetmask为IP地址生成正则表达式 为什么我想得到这个。 我有一个带有负载均衡器的网站(我不能更改服务器中的任何配置),我的客户端想要拒绝特定国家/地区的访问。 我像这样使用.htaccess SetEnvIf X-Forwarded-For "59\.(5[6-9]|6[0-1])\.[0-9]+\." denyIP order allow,deny allow from all deny from env=denyIP SetEnvIf X-Forwarded-For“59\.(5[6-9]| 6[0-1])\[0-9]+\.”登叶 命令允许,拒绝 通融 拒绝来自env=denyIPRegex 如何使用Subnetmask为IP地址生成正则表达式?,regex,.htaccess,http,networking,ip,Regex,.htaccess,Http,Networking,Ip,我的IP地址列表如下: 180.183.0.0/16 180.210.216.0/22 180.214.192.0/19 182.52.0.0/15 ...(400 more) 180.183.0.0/16 180.210.216.0/22 180.214.192.0/19 182.52.0.0/15 …(400多个) 如何使用Subnetmask为IP地址生成正则表达式 为什么我想得到这个。 我有一个带有负载均衡器的网站(我不能更改服务器中的任何配置),我的客户端想要拒绝特定国家/地区的访问。
给定示例文本中的地址列表,这些表达式将通过交替匹配数字范围来匹配请求的范围。不幸的是,它们需要单独构造,因为正则表达式不能真正计算文本。要匹配
182.52
或182.53
字符串,您需要使用包含所需子字符串的正则表达式,它看起来像182.5[23]
- 180.183.0.0/16的范围为180.183.0.1-180.183.255.254
^180\.183.(?:[0-9]{1,2}1[0-9]{2}2[0-4][0-9]{25[0-5])。(?:[1-9][0-9]?[0-9]{2}2[0-4][0-9]{25[0-4])$
- 180.210.216.0/22的范围为180.183.0.1-180.183.3.254
^180\.210\[0-3]。(?:[1-9][0-9]?| 1[0-9]{2}| 2[0-4][0-9]| 25[0-4])$
- 180.214.192.0/19的范围为180.183.0.1-180.183.31.254
^180\.214\(?:[0-9]|[12][0-9]|[3[01])\(?:[1-9][0-9]?[1-9]{2}2[0-4][0-9]| 25[0-4])$
- 182.52.0.0/15的范围为182.52.0.1-182.53.255.254
^182\.5[23]。(?:[0-9]{1,2}1[0-9]{2}2[0-4][0-9]{25[0-5])。(?:[1-9][0-9]?[1-9]{2}2[0-4][0-9]{25[0-4])。
iptables
来拒绝访问IP/IP范围。使用htaccess,请求仍然会进入并由您的web服务器(比如Apache)处理,然后它们就会被阻止。使用iptables,它们在实际应用到任何应用程序之前都会被阻止。谢谢,这很有帮助。我希望我能像这样在SetEnvIf中使用从180.210.216.0/22拒绝的。。。