我如何需要一个 IP 范围而不是 1 个 IP?

use*_*497 28 apache-2.4

我的 IP 更改做了不同的 D 类,所以我想设置一个范围:

123.123.123.xxx,其中最后一段可以是 0-255。

现在,阿帕奇说:

<RequireAny>
   Require ip 127.0.0.1
   Require ip ::1
</RequireAny>
Run Code Online (Sandbox Code Playgroud)

fuk*_*wi2 31

首先,我假设您指的是 Apache 2.4,尽管有“apache-2.2”标签,因为您发布的语法来自 2.4。

从 Apache 文档:

ip.address是 IP 地址、部分 IP 地址、网络/网络掩码对或 network/nnn CIDR 规范。

我假设您的意思是您希望允许 /24,因为 D 类是多播地址,而有类网络在 90 年代就消失了。要允许 /24,您可以使用以下任何一种:

Require ip 123.123.123
Require ip 123.123.123.0/255.255.255.0
Require ip 123.123.123.0/24
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我发现最后一个比第一个更不模糊,并且比第二个更容易阅读。

您可能会发现文档的这一部分很有用:http : //httpd.apache.org/docs/2.4/howto/access.html#host


Fra*_*cke 16

在 Apache 2.2 及以下版本中,您可以使用:

Order deny,allow
Deny from all
Allow from 24.18    # allow access from home
Allow from 162.12   # allow access from work
Run Code Online (Sandbox Code Playgroud)

在您的 .htacess 中,直接在基本级别(不在任何 内<directive>)。

从 Apache 2.4 及更高版本开始,您可以:

<RequireAny>
    #IPv4 range at my work
    Require ip 207.100
    #IPv4 range I usually get through my mobile provider
    Require ip 29.11
    #IPv6 from home
    Require ip 2a02:4126:2aa4::/48  
</RequireAny>
Run Code Online (Sandbox Code Playgroud)

(所有数字都是虚构的,不用担心;-)。

我多年来一直在使用它,以保护我的后端文件夹免受 99% 的潜在用户的攻击。(效果很好,除非您是旅行中的狂热博主。如果您是 gmail 用户:最底部的“上次帐户活动”链接是找出您自己的“IP 习惯”的一种舒适方式)。

  • 是因为 2a02:4126:2aa4:: = 2a02:4126:2aa4:0000:0000:0000:0000:0000 而 2a02:4126:2aa4::/48 匹配所有以 2a02:4126 开头的地址吗? (4认同)