如何网站通过web.config文件屏蔽某个IP或者IP段的方法
偶然在网站iis访问日志中,发现有大量来自某一个IP的大量来访记录,诡异的是,这个访问的目录在我的网站里面根本就不存在,所以,这样的访问在日志文件中造成了大量的404记录。日志代码为:
2020-03-09 00:02:34 172.18.1.240 GET /yinlejulebu/19261.html - 80 - 107.164.190.26 Mozilla/4.0+(compatible;+MSIE+9.0;+Windows+NT+6.1) 404 0 2 156
经查询,其中107.164.190.26这个IP来自境外某个地区。
无独有偶,在同一个文件中的另外一个位置,发现同一IP段的IP,有大量访问网站动态信息的记录,而且这个访问留下的是200记录,也就是说,这个访问记录被爬行成功,日志代码如下:
2020-03-09 00:56:41 172.18.1.240 GET /seo/show1185.shtml - 80 - 107.164.18.26 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/73.0.3683.103+Safari/537.36 200 0 0 1437
同样,这个107.164.18.26也来自境外相同的地区。
所以,我便怀疑网站被采集了,有人说,网站被采集并不可怕,可怕的是人家采集了结果权重还比你高,所以,咱得想办法屏蔽这几个IP访问网站,那么,怎么才能屏蔽这个IP段呢?在无法访问网站服务器的情况下,通过web.config文件来进行限制是可取的方式。于是便在文件中rule位置,增加了这一段:
<rule name="band ip" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="%{HTTP_X_FORWARDED_FOR}&%{REMOTE_ADDR}&%{HTTP_X_Real_IP}" pattern="(107.164.190.26|107.164.18.)" />
</conditions>
<action type="AbortRequest" />
</rule>
经测试,网站运转正常,希望这个方法能给你带来一点启发。