apache使用htaccess來block某一個國家的IP訪問

星期一, 27th 九月 2010

很多人會問我怎麼擋掉大陸來的訪問, 因為很多是機器人或是攻擊, 其實用htaccess來設定IP過濾不難, 難的是我們得到的IP準確度夠不夠, 會不會造成誤擋的情形? 在網路上找到這樣的網站, 他已經幫我們搜集好IP並且可以產生htaccess檔. 

Internet的IP地址和AS號碼分配是分級進行的。ICANN (The Internet Corporation for Assigned Names and Numbers),負責全球Internet上的IP地址進行編號分配的机构(原來是由IANA負責)。 根据ICANN的規定,ICANN將部分IP地址分配給地區級的Internet注冊机构 (Regional Internet Registry),然后由這些RIR負責該地區的登記注冊服務。現在,全球一共有5個RIR:ARIN,RIPE,APNIC,LACNIC,AfriNIC. ARIN主要負責北美地區業務,RIPE主要負責歐洲地區業務,LACNIC主要負責拉丁美洲美洲業務,AfriNIC負責非洲地區業務,亞太地區國家的IP地址和AS號碼分配由APNIC管理。 

理論上想要IP的資料可以向這些單位要,不過就算他有提供,我想大家還是會嫌麻煩, 這時候我們請出了「BLOCK COUNTRY」這個網站。 透過「blockcountry」線上工具網站產生的htaccess語法來替自己封鎖想要封鎖的IP網段國家。 

網站名稱:Block A Country
網站網址http://www.blockcountry.com

第1步 來到Block country 網站首頁,首先你會看到一個框框,框框中有許多國家,請您挑選要封鎖的國家,可以複選,選擇完成後請點擊下方的﹝Block Now!﹞。

第2步 接著畫面會秀處一長串的程式碼,請將此程式碼複製起來!

第3步 這時,請建立一個名為「htaccess.txt」純文字檔案,將剛剛網頁上產生的程式碼貼到純文字檔案中,然後儲存。

程式碼之中,以下這串網址您可以自由更改,可以更改你要導向的頁面,你可以保持預設不去做變動或者是改成你要導向的網頁網址。

http://blockcountry.com/blocked.php

第4步 接著請上傳剛剛設定好的htaccess.txt檔案,然後將檔案上傳到網站根目錄,也就是放在「public_html」目錄下,接著將檔案名稱改成「.htaccess」,這樣就完成設定封鎖該國家的訪客囉!

如果網站上已經有.htaccess檔案

若您發現您網站上已經有.htaccess檔案,那請下載目前的.htaccess檔案,開啟後以不破壞原本程式結構下,將封鎖某國IP的語法加在原本的語法下方,儲存檔案後然後上傳就可以囉!

以上內容大部份是網上的專家分享,我只有做一些整理跟修改,其實最根本的方法是請ISP在Router上面幫你處理,不過想當然而,除非你錢付得夠多,或是最後自己管路由,不然就先不要想到這個方法吧。