PHP代码屏蔽指定地区IP访问,不影响百度蜘蛛

方案一

使用方法:

1、新建一个php文件,如:denyip.php

2、再将以下代码,复制进去,修改一下需要屏蔽的地区。这个地区就无法访问了。

3、保存并上传到网站根目录。

4、嵌入程序:

(1)wordpress程序,在wp-config.php下添加一句 require_once(ABSPATH.'denyip.php');  保存。

(2)PHP程序,打开网站根目录index.php文件,<?php include 'denyip.php';?> 将这段代码添加到顶部,保存。

(3).net程序 打开网站根目录index.aspx文件,<!-- #include file="denyip.php" --> 将这段代码添加到顶部,保存。

(4)asp程序 打开网站根目录index.asp文件,<!--#include file="denyip.php"--> 将这段代码添加到顶部,保存。

 

<?php
function get_client_ip() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),
"unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR']
&& strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}
header("Content-type: text/html; charset=utf-8");
$verification = '山东省';//修改省份
$ip = get_client_ip(); //获取当前用户的ip
$antecedents = $_SERVER['HTTP_REFERER'];//访客来路地址
$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//IP数据库来自淘宝。
$address = json_decode($result,true);
if($address['data']['region'] == $verification && strpos($antecedents, 'baidu') === false && strpos($antecedents, 'google') === false){
sleep(9999999999999999);
ob_start();
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
echo '网站维护中....';
exit;
}

  

方案二

<?php

/**

* 检测访问的ip是否为规定的允许的ip

* Enter description here ...

*/

function check_ip(){

$ALLOWED_IP=array('xx.xxx.57.85','xxx.xxx.73.61');

$IP=getIP();

$check_ip_arr= explode('.',$IP);//要检测的ip拆分成数组

#限制IP
#if(!in_array($IP,$ALLOWED_IP)) {
if(in_array($IP,$ALLOWED_IP)) {   //限制以上IP跳转到指定页面

foreach ($ALLOWED_IP as $val){

if(strpos($val,'*')!==false){//发现有*号替代符

$arr=array();//

$arr=explode('.', $val);

$bl=true;//用于记录循环检测中是否有匹配成功的

for($i=0;$i<4;$i++){

if($arr[$i]!='*'){//不等于* 就要进来检测,如果为*符号替代符就不检查

if($arr[$i]!=$check_ip_arr[$i]){

$bl=false;

break;//终止检查本个ip 继续检查下一个ip

}

}

}//end for

if($bl){//如果是true则找到有一个匹配成功的就返回

return;

die;

}

}

}//end foreach

/*header('HTTP/1.1 403 Forbidden');*/
header("Location: ../abc/index.html"); //指定跳转页面

/*echo "Access forbidden 403";*/

die;

}

}
/*
* 获得访问的IP

* Enter description here ...

*/

function getIP() {

return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]

:(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]

:$_SERVER["REMOTE_ADDR"]);

}

ip_list.conf  示例IP如下

allow xxx.xxx.57.85;
allow xxx.xxx.73.61;

 

使用方法:在使用页面引入 block.php

(1)wordpress程序,在wp-config.php下添加一句 require_once(ABSPATH.'block.php');  保存。

(2)PHP程序,打开网站根目录index.php文件,<?php include 'block.php';?> 将这段代码添加到顶部,保存。

(3).net程序 打开网站根目录index.aspx文件,<!-- #include file="block.php" --> 将这段代码添加到顶部,保存。

(4)asp程序 打开网站根目录index.asp文件,<!--#include file="block.php"--> 将这段代码添加到顶部,保存。

check_ip();

 

版权声明 1. 本网站名称:稻草人笔记   永久网址:https://www.facekun.com
2. 本文链接:PHP代码屏蔽指定地区IP访问,不影响百度蜘蛛: https://www.facekun.com/arts/197.html
3. 部分文章内容来源于网络,仅作为学习展示之用,版权归原作者所有
4. 因部分文章网络流转次数较多,已无法追溯至原作者,若遗漏导致侵犯了您的权益,请您来信告知我,确认后会尽快删除。
5. 本站禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 如无特别声明本文即为原创文章仅代表个人观点,版权归《稻草人笔记》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
< <上一篇
下一篇>>