Nginx安全下载(IP地址)

我正在configurationnginxsecure_download一起工作,并使其工作没有任何问题。

不过,我想修改它,只为特定的IP做下载链接。

我可以使用$remote_addrvariables来实现这一点。 不过有一些ISP知道我经常更换IP(每2或3秒一次)。

我的ISP也这样做,例如:
我现在得到了112.112.11.11作为我的IP,刷新后会是112.112.11.17 。 这个行为是由ISP设置的,而不是由我的调制解调器或路由器设置的,我知道还有几个ISP也这样做。

现在,IP变化太快,安全下载将无法正常工作,因为在加载页面时,IP可能已经改变,导致下载链接对新IP无效。

我在想的是告诉nginx只查看IP地址的前3个块,在这种情况下, 112.112.11.x将能够使用相同的安全下载链接下载相同的文件。 这将有可能使用nginx conf

欢迎任何其他select。

您可以使用map指令添加一个新的variables,该variables只包含$ remote_addr的前三个八位字节:

 map $remote_addr $remote_net { default $remote_addr; ~^(?<octets>\d+\.\d+\.\d+) $octets; } 

然后使用$ remote_net而不是$ remote_addr。 默认情况下,ipv6客户端将仅保留variables,而只有ipv4客户端的前三个八位字节。

您可以在操作系统级别停止访问。 使用iptables允许来自该范围的主机的端口80和443上的入站stream量,然后拒绝端口80和443上的所有其他stream量。