这段时间在统计工具里面总是看到一些未知浏览器、未知操作系统的用户的频繁请求而且ip都在一个段里面,使我产生了一些疑问,这些用户算是有效用户吗。网站访问没有浏览器没有操作系统的记录,我经过几天的分析确认这些访问不是人在访问而是一些机器或者是别人在采集我的站内的东西,萌生了一种屏蔽这个ip的想法。
把统计里面的没有浏览器记录的用户数据导出来看了下屏蔽ip已经不现实了ip不少一百多个,但是仔细观看不难看出这些ip都集中在某些ip断内。想个办法屏蔽整个ip段的用户,也许会造成一些误杀但是能确保网站流量是干净的。
好了,废话我也不说了。下面介绍下我的实现思路以及实现的代码
我是想的屏蔽ip段的前两端 111.11.11.11 这个ip我就要屏蔽以111.11开头的多有这个ip段内的访问
我的实现思路是把要屏蔽的ip集中存在一个数组中然后用获得的用户的ip去数组中匹配,在数组中的就屏蔽 不在数组中的就放行。
上菜吧 我写好的一个函数 很粗糙的一个高手们不要喷
/** * 屏蔽IP段 */ function killIp($ip){ $return = false; $ip1 = array('111', '112', '102', '114'); $ip2 = array('1', '2', '3', '4', '5'); $temp = explode('.', $ip); if (in_array($temp[0], $ip1) && in_array($temp[1], $ip2)) { $return = true; } return $return; }