由于很多人有一些需求在做國內(nèi)站的時候,不做國內(nèi)某個地區(qū)的業(yè)務(wù)的時候,他想屏蔽用戶訪問網(wǎng)站,我這邊以dedecms搜索功能為例子,因為是以前開發(fā)的,時間比較有限現(xiàn)在,不重新調(diào)整做整站的功能,如果有需要,可以將以下相關(guān)代碼放入一個php文件,然后在data/common.ini.php里面包含就可以了。
目前網(wǎng)絡(luò)上有很多資源,例如著名的珊瑚蟲ip數(shù)據(jù)庫,但是其文件在本地,得定時更新。我們現(xiàn)在使用淘寶ip數(shù)據(jù)庫,通過json返回的數(shù)據(jù)來解析ip是否某地區(qū),下面以"上海市"為例:
首頁找到dedecms底下plus下的search.php文件,查找以下代碼
if($cfg_notallowstr !='' && preg_match("#".$cfg_notallowstr."#i", $keyword)) { ShowMsg("你的搜索關(guān)鍵字中存在非法內(nèi)容,被系統(tǒng)禁止!","-1"); exit(); } |
在上面加入
function get_ip_data(){ $ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip()); $ip = json_decode($ip); if($ip->code){ return false; } $data = (array) $ip->data; if($data['city']=='上海市' && !isCrawler()){ // exit('http://www.dedecms51.com'); return true; /* header("location:".getenv("HTTP_REFERER")); // 返回其調(diào)用頁面 */ } } function isCrawler() { $spiderSite= array( "TencentTraveler", "Baiduspider+", "BaiduGame", "Googlebot", "msnbot", "Sosospider+", "Sogou web spider", "ia_archiver", "Yahoo! Slurp", "YoudaoBot", "Yahoo Slurp", "MSNBot", "Java (Often spam bot)", "BaiDuSpider", "Voila", "Yandex bot", "BSpider", "twiceler", "Sogou Spider", "Speedy Spider", "Google AdSense", "Heritrix", "Python-urllib", "Alexa (IA Archiver)", "Ask", "Exabot", "Custo", "OutfoxBot/YodaoBot", "yacy", "SurveyBot", "legs", "lwp-trivial", "Nutch", "StackRambler", "The web archive (IA Archiver)", "Perl tool", "MJ12bot", "Netcraft", "MSIECrawler", "WGet tools", "larbin", "Fish search", ); if(in_array(strtolower($_SERVER['HTTP_USER_AGENT']),$spiderSite)){ return true; }else{ return false; } } //獲取客戶端ip function get_client_ip() { if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { $realip = $_SERVER["HTTP_CLIENT_IP"]; } else { $realip = $_SERVER["REMOTE_ADDR"]; } } else { if (getenv("HTTP_X_FORWARDED_FOR")){ $realip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); } } return $realip; } if(get_ip_data()) { ShowMsg("你的IP被禁止!","-1"); exit(); } |
保存文件后,你讓上海市的朋友訪問,系統(tǒng)就會提示"你的IP被禁止!"的提示
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 織夢搜索功能禁止特定地區(qū)用戶訪問