這裡給大家分享的是一個簡單的使用php實現的屏蔽指定IP段的代碼,非常的實用,有需要的小伙伴可以參考下。
這段時間在統計工具裡面總是看到一些未知浏覽器、未知操作系統的用戶的頻繁請求而且ip都在一個段裡面,使我產生了一些疑問,這些用戶算是有效用戶嗎。網站訪問沒有浏覽器沒有操作系統的記錄,我經過幾天的分析確認這些訪問不是人在訪問而是一些機器或者是別人在采集我的站內的東西,萌生了一種屏蔽這個ip的想法。
把統計裡面的沒有浏覽器記錄的用戶數據導出來看了下屏蔽ip已經不現實了ip不少一百多個,但是仔細觀看不難看出這些ip都集中在某些ip斷內。想個辦法屏蔽整個ip段的用戶,也許會造成一些誤殺但是能確保網站流量是干淨的。
好了,廢話我也不說了。下面介紹下我的實現思路以及實現的代碼
我是想的屏蔽ip段的前兩端 111.11.11.11 這個ip我就要屏蔽以111.11開頭的多有這個ip段內的訪問
我的實現思路是把要屏蔽的ip集中存在一個數組中然後用獲得的用戶的ip去數組中匹配,在數組中的就屏蔽 不在數組中的就放行。
上菜吧 我寫好的一個函數 很粗糙的一個高手們不要噴
?
1 2 3 4 5 6 7 8 9 10 11 12 13/**
* 屏蔽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
;
}
以上所述就是本文的全部內容了,希望大家能夠喜歡