Apache/2.4.6 - 使用 Require not ip 来阻止较大的 IP 范围

Apache/2.4.6 - 使用 Require not ip 来阻止较大的 IP 范围

我已经在 .htaccess 中使用 Require not ip 一段时间了,效果很好。我需要阻止大范围的 IP,例如 18.128.0.0-18.255.255.255。

我应该逐行执行吗

不需要 ip 18.128 不需要 ip 18.129 不需要 ip 18.130 . . 不需要 ip 18.255

或者是否可以在一行中完成所有操作?

答案1

Require ip接受 CIDR“前缀长度”表示法(地址/plen,其中 plen 是网络掩码中“1”位数)。您显示的范围写为18.128.0.0/9

即使对于完全符合八位字节边界的网络,这通常也是首选符号:也就是说,Require ip 192.168您应该写Require ip 192.168.0.0/16(类似/8、/24)。


如果您安装了 Python,则可以使用脚本将开始和结束地址转换为前缀掩码(或掩码列表):

#!/usr/bin/env python3
import ipaddress, sys

a = ipaddress.ip_address(sys.argv[1])
b = ipaddress.ip_address(sys.argv[2])
n = ipaddress.summarize_address_range(a, b)
for net in n:
    print(net)

相关内容