寫教學的最大目的是教會未來的自己

在PHP下做IP偵測及分析過濾

在本文一開始 ,要先來個免責聲明: 本內容是我在替學校做報修系統時,從多個網站學習組合而來,理論上可行,是否會被攻破不知~~~

 

今天我替學校做的報修系統,遭人閒閒沒事丟資料進去,為了避免以後的麻煩,就加上了 IP 過濾的功能,雖然這個項目是本來就預定要有的,但是是在所有測試都OK後才以 apache 的設定上 過濾。

程式碼 我是參考一些別人寫的code 加以改寫後 以functuon 的方式處理

抓取IP資訊,這似乎增加了 如果用proxy 仍可抓取正確IP

function getIP()
    {
        if (!empty($_SERVER[‘HTTP_CLIENT_IP’]))
    return $_SERVER[‘HTTP_CLIENT_IP’];
        else if (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’]))
    return $_SERVER[‘HTTP_X_FORWARDED_FOR’];
        else
    return $_SERVER[‘REMOTE_ADDR’];
    }

再來是簡單的 IP 分析,取得IP後 分割成四份,這只是簡單的方法,如果有必要可以做出 白名單 黑名單的方式,不過我不需要,以後再說

function checkIP()
    {
        $IP=getIP();
        list($ip1, $ip2, $ip3,$ip4) = sscanf($IP,"%d.%d.%d.%d");
        if($ip1==xxx && $ip2==yyy) return true; //這裡放分析條件
        else return false;
    }

 

之後再要做IP 分析的地方加入

    if(checkIP()==false)
    {
        header('Location: falseIP.php');
    exit;
    }

讓只要是不允許的IP 通通倒到另一個頁面

 

最後說明一下

我們都知道 apache 可以做IP 過濾的功能,但是如果是只針對特定頁面的話,不易設定,而且如果是租用的server 有時無法做設定,所以還是需要用PHP做分析

Post to Twitter Post to Plurk Post to Facebook Send Gmail

2 Responses to 在PHP下做IP偵測及分析過濾

發表迴響

Copyright © 2024. All Rights Reserved.

歡迎光臨
初音