<" />

"景先生毕设|www.jxszl.com

织梦dedecms搜索功能禁止特定地区用户访问

2022-10-29 16:29编辑: www.jxszl.com景先生毕设
由于很多人有I.些需求在做国内站的时候,不做国内某个地区的业务的时候,他想屏蔽用户访问网站,我这边以dedecms搜索功能为例子,因为是以前开发的,时间比较有限现在,不重新调整做整站的功能,如果有需要,可以将以下相关代码放入I.个php文件,然后在data/common.ini.php里面包含就可以

 更多精彩就在: 51免费论文网|www.jxszl.com 
了.

目前网络上有很多资源,例如著名的珊瑚虫ip数据库,但是其文件在本地,得定时更新.我们现在使用淘宝ip数据库,通过json返回的数据来解析ip是否某地区,下面以"上海市"为例:

首页找到dedecms底下plus下的search.php文件,查找以下代码
if($cfg_notallowstr!=&&preg_match("#".$cfg_notallowstr."#i",$keyword))
{
ShowMsg("你的搜索关键字中存在非法内容,被系统禁止!","-I.");
exit();
}

在上面加入
functionget_ip_data(){
$ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip());
$ip=json_decode($ip);
if($ip->code){
returnfalse;
}
$data=(array)$ip->data;
if($data[city]==上海市&&!isCrawler()){
//exit(http://www.adminbuy.cn);
returntrue;

/*header("location:".getenv("HTTP_REFERER"));//返回其调用页面*/

}
}

functionisCrawler(){
$spiderSite=array(
"TencentTraveler",
"Baiduspider+",
"BaiduGame",
"Googlebot",
"msnbot",
"Sosospider+",
"Sogouwebspider",
"ia_archiver",
"Yahoo!Slurp",
"YoudaoBot",
"YahooSlurp",
"MSNBot",
"Java(Oftenspambot)",
"BaiDuSpider",
"Voila",
"Yandexbot",
"BSpider",
"twiceler",
"SogouSpider",
"SpeedySpider",
"GoogleAdSense",
"Heritrix",
"Python-urllib",
"Alexa(IAArchiver)",
"Ask",
"Exabot",
"Custo",
"OutfoxBot/YodaoBot",
"yacy",
"SurveyBot",
"legs",
"lwp-trivial",
"Nutch",
"StackRambler",
"Thewebarchive(IAArchiver)",
"Perltool",
"MJI.IIbot",
"Netcraft",
"MSIECrawler",
"WGettools",
"larbin",
"Fishsearch",
);
if(in_array(strtolower($_SERVER[HTTP_USER_AGENT]),$spiderSite)){
returntrue;
}else{
returnfalse;
}
}

//获取客户端ip
functionget_client_ip()
{
if(isset($_SERVER)){
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip=$_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif(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");
}elseif(getenv("HTTP_CLIENT_IP")){
$realip=getenv("HTTP_CLIENT_IP");
}else{
$realip=getenv("REMOTE_ADDR");
}
}
return$realip;
}
if(get_ip_data())
{
ShowMsg("你的IP被禁止!","-I.");
exit();
}

保存文件后,你让上海市的朋友访问,系统就会提示"你的IP被禁止!"的提示

原文链接:http://www.jxszl.com/biancheng/dedecms/75343.html