我的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式在请求时不被评估。