我已经在 .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)