对于已经运营了一段时间的网站来说,突然北岸要关闭网站,会令大多数人都很烦恼~
前一段时间,小编的网站正逢此事,wordpress要做到北岸不关站,好友奶嘴告诉了我这样一个办法——屏蔽管局地区IP。
亲测可用,但不完全肯定不会有任何纰漏,在这里记录一下。
万不得已之下,你可以尝试使用以下办法。
[quote]新建一个ipget.php文件,把下面的代码输入php文件中。[/quote]
把以下代码中的“江西省”修改成你所在的省份,例如你在广东北岸,那就改成广东省。
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');
header('X-Powered-By:NaiZui');
echo '网站备案中....';
exit;
}
[quote]在wordpress主题header.php中调用[/quote]
<?php include( 'ipget.php' );?>
ip 转换成地理位置太耗时间,直接拖慢网站打开时间。如果用纯真数据库或者17monipdb数据库会快很多。
可以移动端不用屏蔽吗,
不早拿出来啊。
测试
没什么,就是来看看大神动态,顺便测试下评论 🙄
嘿嘿。常来。