有时候一些 IP 的来访或某些蜘蛛对网站的爬取让人很恼火。我们有许多办法管理到访用户。例如,可以设置 robots.txt 文件管理守规矩的蜘蛛抓取网站内容;当然,我们可以有很多办法禁止不守规矩的蜘蛛、讨厌的用户访问网站或某个特定文件,对于 Apache 主机或其他主机,有很多配置方法。也可以通过 网站的 PHP 语言直接设置。而对于使用 Windows 主机的用户,可以通过服务商后台管理面板可添加 IP 黑名单,也可以使用 IIS 服务后台设置,虚拟主机用户更可以通过书写自己网站后台的 web.config 文件来设置。这篇文章讲的是通过 web.config 文件设置。
以下是代码:
- <rewrite>
- <rules>
- <rule name="Block Some Ip Adresses OR Bots" stopProcessing="true">
- <match url="(.*)" />
- <conditions logicalGrouping="MatchAny">
- <add input="{HTTP_USER_AGENT}" pattern="蜘蛛名称" ignoreCase="true" /> <!-- 来禁止特定蜘蛛 -->
- <add input="{HTTP_USER_AGENT}" pattern="^$" /> <!-- 禁止空 UA 访问 -->
- <add input="{REMOTE_ADDR}" pattern="单独IP或使用正则表达的IP地址" />
- </conditions>
- <!-- 你也可以使用<action type="AbortRequest" />来直接代替下面这段代码 -->
- <action type="CustomResponse" statusCode="403" statusReason="Access is forbidden." statusDescription="Access is forbidden." />
- </rule>
- </rules>
- </rewrite>
可通过下面代码禁止浏览某文件
- <rule name="Block spider">
- <match url="(^robotssss.txt$)" ignoreCase="false" negate="true" /> <!-- 禁止浏览某文件 -->
- <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
- </rule>
时光在路上(www.timezls.com)提醒大家,上面的禁止规则需要写在所有规则的最上面。
蜘蛛名称可以使用正则表达
- <add input="{HTTP_USER_AGENT}" pattern="Adminrtspider|Ezooms|MJ12bot" ignoreCase="true" />
蜘蛛信息,可以看我以前的一篇文章《禁止一些恼人的无用蜘蛛抓取网站信息》。
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
IP 地址可以使用正则表达
对于 IP 地址段的正则表达书写,可以参考下面两个例子。关于IP的正则表达式,有很多种写法,看个人爱好了。
例 1:IP 地址段为 127.0.0.0 - 127.0.0.255
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
127\.0\.0\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])
例 2:IP 地址段为 127.0.0.1 - 127.0.255.255
127\.0\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])
注意:对于使用了 CDN 加速的网站,你不能直接使用 {REMOTE_ADDR}
来屏蔽IP地址,需要用 {HTTP_X_FORWARDED_FOR}
,参考此处的文章:https://www.timezls.com/2020/09/cdn-real-ip.html 。
其他一些参考文章
本文禁止全文转载。任何形式转载请联系作者(时光在路上 www.timezls.com) Copyright © 2023. All Rights Reserved
代码已上到百度云盘:链接: pan.baidu.com/share/init?surl=miLXzvE 密码: 2bjb
本文禁止抄袭。
本文禁止无授权转载 - 时光在路上 www.timezls.com 保留所有权利