濮阳杆衣贸易有限公司

主頁(yè) > 網(wǎng)站建設(shè) > 建站知識(shí) > 屏蔽特定國(guó)內(nèi)特定地區(qū)用戶訪問dedecms搜索功能

屏蔽特定國(guó)內(nèi)特定地區(qū)用戶訪問dedecms搜索功能

POST TIME:2021-05-18 00:02

由于很多人有一些需求在做國(guó)內(nèi)站的時(shí)候,不做國(guó)內(nèi)某個(gè)地區(qū)的業(yè)務(wù)的時(shí)候,他想屏蔽用戶訪問網(wǎng)站,我這邊以dedecms搜索功能為例子,因?yàn)槭且郧伴_發(fā)的,時(shí)間比較有限現(xiàn)在,不重新調(diào)整做整站的功能,如果有需要,可以將以下相關(guān)代碼放入一個(gè)php文件,然后在data/common.ini.php里面包含就可以了。
 
目前網(wǎng)絡(luò)上有很多資源,例如著名的珊瑚蟲ip數(shù)據(jù)庫(kù),但是其文件在本地,得定時(shí)更新。我們現(xiàn)在使用淘寶ip數(shù)據(jù)庫(kù),通過json返回的數(shù)據(jù)來解析ip是否某地區(qū),下面以"上海市"為例:
 
首頁(yè)找到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.xx.net');
  return true;
        
/*     header("location:".getenv("HTTP_REFERER")); // 返回其調(diào)用頁(yè)面 */

    }
}

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();
}
我將函數(shù)直接寫在search.php文件中,大家不要學(xué)我,這會(huì)導(dǎo)致原來的文件代碼有些雜亂,建議使用包含函數(shù)文件的方式。
 
保存文件后,你讓上海市的朋友訪問,系統(tǒng)就會(huì)提示"你的IP被禁止!"的提示,趕緊試試吧,后面我將介紹一種國(guó)外做站屏蔽國(guó)內(nèi)訪客的辦法。>>>PHP禁止國(guó)外用戶訪問自己站點(diǎn)


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
永州市| 湘阴县| 高唐县| 花莲县| 台东县| 湾仔区| 邢台市| 台南市| 蕉岭县| 友谊县| 隆化县| 东乡族自治县| 丹棱县| 龙泉市| 大方县| 页游| 黑龙江省| 南宁市| 桓仁| 正蓝旗| 张家界市| 黑水县| 象州县| 临高县| 潮州市| 荥阳市| 农安县| 绥中县| 灌云县| 寿阳县| 阳春市| 孝义市| 柳江县| 财经| 博兴县| 阿坝| 通城县| 旬邑县| 方正县| 莆田市| 丰都县|