本程式還有另一個效果,可以顯示出訪客的IP位址以及使用的瀏覽器軟體,你也可以加設自己的歡迎詞,做為歡迎訪客的訊息.
「網頁守門員」主要是使用IP偵測的技術,來偵測網頁訪客的IP位址,據此決定是否擋掉.而擋掉的方法則是把他的瀏覽器導引到別的網頁,如此一來他就看不到你的網頁內容了.
請注意!程式碼貼上之後,一定要參考我後面說明的設定方法來修改你自己的參數,否則不會有導引的效果.
參數設定
<script language="JavaScript" type="text/javascript">
ban_ip = new Array();
ban_ip[0]='xxx.xxx.xxx.xxx';
ban_ip[1]='yyy.yyy.yyy.yyy';
redirect_http = 'http://nssdc.gsfc.nasa.gov/image/planetary/mars/marsglobe2.jpg';
dk_herader='Visitor Information';
text_client_ip='IP: ';
text_client_agent='Software:<br>';
dk_footer='<img src=http://www.webdeveloper.com/animations/bnifiles/puma.gif>';
</script>
主程式
<script src="http://www.ezeshop.com.tw/sidebar/doorkeeper.php" language="JavaScript" type="text/javascript">
</script>
風格設定
<style>
.doorkeeper_board {
width:170;
height:120;
}
.doorkeeper_content {
margin: 10 10 10 10;
background-color: white;
background-position: top right;
background-repeat: no-repeat;
font: 16px;
}
.doorkeeper_header {
text-align: center;
}
.doorkeeper_ip {
text-align: center;
}
.doorkeeper_agent {
text-align: center;
}
.doorkeeper_footer {
text-align: center;
}
</style>
如何設定參數
IP黑名單
第一個要設定就是你要擋掉的IP位址,參數為 ban_ip 陣列,上例中已經設定了2組擋掉IP黑名單,分別是ban_ip[0]及ban_ip[1],但設定值是用假設的 xxx.xxx.xxx.xxx 及 yyy.yyy.yyy.yyy ,你要把 x 跟 y 改成你實際要擋掉的IP數字.你也可以自己多加幾組擋掉IP,只要延續陣列註標的數字即可,因此上例若要增加IP則是 ban_ip[2] , ban_ip[3] , ......
至於如何知道不速之客的IP位址呢?大部分Blog的留言功能,都可以讓Blog的主人看到留言者的IP位址,或者是從網站的存取紀錄也可以看到造訪者的IP位址,這樣你就可以把出言不遜的IP位址列入擋掉IP的黑名單中.
在設定擋掉IP黑名單時,還有一個網路現狀你一定要知道,很多使用非固定IP的ADSL用戶,他上網的IP是連線時動態配置的,所以IP的主人有可能變來變去,因此不速之客若使用非固定IP的ADSL,你擋掉他的IP會造成所有同一家ISP的用戶,動態配置到不速之客用過的IP,也一樣被擋掉無法看到你的網頁.學生使用學校電腦也會有這種情形,可能多個學生共用1組IP.因此你設定擋掉IP時,要明瞭可能連帶一部份的無辜者也會被你擋掉.你也可以事先用網路上提供的whois服務來確認一下IP的使用單位,再決定是不是擋掉這個IP.
導引網址
偵測出不速之客後,當然是把他丟到(導引到)別的網址,不要讓他看你網頁內容,設定的參數名稱是 redirect_http , 直接給網址就可以,什麼?!你要把不速之客丟到FBI去調查!(http://www.fbi.gov),嗯..也是可以..什麼?你要把不速之客丟到火山!(http://www.photo.net/photo/pcd4229/mirage-volcano-7.4.jpg),這...這有點狠,我是比較愛好和平的,上面的例子是把不速之客直接丟到火星.(更狠....)
其他幾個參數是設定非黑名單訪客到訪時,要呈現的歡迎詞內容,參數內容說明如下.
dk_herader 頁首出現的歡迎詞
text_client_ip 顯示訪客IP的標題
text_client_agent 顯示訪客瀏覽器軟體的標題
dk_footer 頁尾出現的歡迎詞
前述的參數若內容設定為空字串,或把該參數拿掉,就不會顯示該部分的歡迎詞,歡迎詞內也可以使用<img>之類的HTML指令來連結圖片或動畫,上例中的頁尾就連結到免費的GIF動畫.
如何變更風格
這個部分必須你自己熟悉CSS的設定,才有辦法修改,你也可以尋找其他Blog的CSS教學來參考.網頁守門員用到下列的CSS類別設定:
.doorkeeper_board 控制整個歡迎詞版面的大小及底色風格
.doorkeeper_content 設定顯示歡迎詞文字的整體風格
.doorkeeper_header 設定頁首內容的風格
.doorkeeper_ip 設定顯示IP位址文字的風格
.doorkeeper_agent 設定顯示瀏覽器軟體文字的風格
.doorkeeper_footer 設定頁尾內容的風格
歡迎分享你的設計
網頁守門員提供了很大的設計彈性(CSS及HTML),你的好設計若願意提供給網友分享,也歡迎在後面的回應提供你設計的網頁守門員網址.
但請注意不要直接把設計的程式碼(參數設定、風格設定)貼到回應裡面,因為這樣會把回應弄亂掉,把程式碼貼在你自己的Blog,然後在我這的回應貼你Blog的網址.
2005.01.25 IP黑名單格式增加萬用字元
經由 wakako 在回應裡的建議,在黑名單格式增加萬用字元的用法,如下例的IP表示法:
192.168.1.*
代表以192.168.1 三碼開頭的IP位址全部擋掉.這樣就可以更方便地設定阻擋整個class C或class B 的IP.不過我還是要提醒,這樣子擋掉的IP數量非常多(1~255),也代表可能有許多無辜網友的IP也一起被擋掉.


