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

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

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

现在,Apache说:

<RequireAny> Require ip 127.0.0.1 Require ip ::1 </RequireAny> 

    首先,我假定你的意思是Apache 2.4,尽pipe有“apache-2.2”标签,因为你发布的语法是2.4。

    从Apache文档:

    ip.address是IP地址,部分IP地址,networking/networking掩码对或networking/ nnn CIDR规范。

    我假设你的意思是你希望允许/ 24,因为D类是多播地址,有类的networking在90年代去世了。 要允许一个/ 24,你可以使用下面的任何一个:

     Require ip 123.123.123 Require ip 123.123.123.0/255.255.255.0 Require ip 123.123.123.0/24 

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

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

    在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 

    在.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> 

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

    我现在使用这个已经很多年了,可以保护我的后端文件夹免受99%的潜在用户的影响。 (工作得很好,除非你是旅行中的热心博主,如果你是Gmail用户:“最后一个帐户活动”链接在底部是一个很好的方式来找出你自己的“IP habbits”)。

    注意到您现在已经确认使用Apache 2.2 ,Apache 2.2不支持Require ip<RequireAny> 。 如Apache HTTP Server 2.4中的新function概述所述 ,“现在可以使用Require指令和相关容器指令(如<RequireAll>来指定高级授权逻辑。 前者是在Apache 2.4中添加的改进之一。

    为了在Apache 2.2中处理这个问题,你可能需要做如下的事情:

     Order allow,deny Allow from 123.123.123 

    这将得到指定的整个范围。

    在授权阶段使用Apache的Require指令来确保用户被允许或拒绝访问资源。 mod_authz_host使用ip,host,forward-dns和local扩展授权types。 其他授权types也可以使用,但可能需要加载额外的授权模块。

    这些授权提供程序会影响哪些主机可以访问服务器的某个区域。 访问可以通过主机名,IP地址或IP地址范围进行控制。

    自v2.4.8以来,在主机require指令中支持expression式。 要求ip

    IP提供商允许根据远程客户端的IP地址访问服务器。 当指定了要求IP地址时,如果IP地址匹配,则允许访问请求。

    完整的IP地址:

    要求ip 10.1.2.3要求ip 192.168.1.104 192.168.1.205

    主机的IP地址允许访问

    部分IP地址:

    要求IP 10.1要求IP 10 172.20 192.168.2

    IP地址的前1到3个字节,用于子网限制。

    networking/networking掩码对:

    要求ip 10.1.0.0/255.255.0.0

    一个networkingabcd和一个networking掩码wxyz用于更细粒度的子网限制。

    networking/ nnn CIDR规范:

    要求ip 10.1.0.0/16

    类似于以前的情况,除了networking掩码由nnn个高位1个比特组成。

    请注意,上面的三个例子完全相同的一组主机。

    可以指定IPv6地址和IPv6子网,如下所示:

    要求ip 2001:db8 :: a00:20ff:fea7:ccea要求ip 2001:db8:1:1 :: a要求ip 2001:db8:2:1 :: / 64要求ip 2001:db8:3 :: / 48

    注意:由于IP地址在启动时被parsing,expression式在请求时不被评估。

    https://httpd.apache.org/docs/trunk/mod/mod_authz_host.html