使用.htaccess利用IP地址限制访问

摘要:
前言:屏蔽IP地址有时是非常必要的,比如对于一个外贸公司网站,来自国内的访问是不会带来任何经济效益的,而且还占用服务器资源,造成访问延迟等问题。
前言屏蔽IP地址有时是非常必要的,比如对于一个外贸公司网站,来自国内的访问是不会带来任何经济效益的,而且还占用服务器资源,造成访问延迟等问题。
.htaccess

屏蔽ip地址
order allow,deny
deny from 192.168.0.1
allow from all
如果需要屏蔽整个IP段,可以使用
order allow,deny
deny from 192.168.0
allow from all
如果只想屏蔽IP段中的一小部分IP,则可使用
order allow,deny
deny from 192.168.0.100/200
allow from all
只允许特定IP访问

如果你用的是固定IP,可以限定只有你的IP可以访问网站后台,比如WordPress的网站后台地址为/wp-admin/ 你就可以在该目录下建立一个.htaccess文件,然后进行IP限定。

如果你的是地区性网站,不希望外地用户访问你的网站,只需要设定只有该地区的IP段能够访问即可。

具体方法也很简单,把上面的 deny from 和 allow from 的位置换一下即可
比如:允许IP段192.168.0.100至192.168.0.200的用户访问,其他IP一律无法访问。
order allow,deny
allow from 192.168.0.100/200
denyfrom all

如何屏蔽“伪原创”网站
现在的“伪原创”对原创作者造成很大的困扰,很多都是用插件或抓取工具对原创网站的内容进行剽窃,一旦你发现某个网站对你的内容进行“伪原创”,你可以使用本章介绍的方法来屏蔽该网站。
方法很简单,就是把IP换成网址,例如:
order allow,deny
deny from .abc.com
allow from all

上面的配置就是屏蔽所有来自abc.com网站的访问,你可能发现了.abc.com前面的点,这个是整站屏蔽(包括二级域名)!
可配合php文件使用

<?php
$ip = get_client_ip_extend();//获取当前访问者的ip
$logFilePath = '/ippath/';//日志记录文件保存目录
$fileht = '.htaccess2';//被禁止的ip记录文件
$allowtime = 60;//防刷新时间
$allownum = 10;//防刷新次数
$allowRefresh = 120;//在允许刷新次数之后加入禁止ip文件中

if (!file_exists($fileht)) {
    file_put_contents($fileht, '');
}
$filehtarr&nbsp;=&nbsp;@file($fileht);
if (in_array($ip&nbsp;.&nbsp;&quot;\r\n&quot;,&nbsp;$filehtarr)) {
    $message = '警告:你的IP已经被禁止了!';
    if ($type === 'API') {
        return $message;
    }
    $this-&gt;error($message);
}

//加入禁止ip
$time = time();
$fileforbid&nbsp;=&nbsp;$logFilePath . 'forbidchk.dat';
if (file_exists($fileforbid)) {
    if ($time&nbsp;-&nbsp;filemtime($fileforbid) > 30) {
        @unlink($fileforbid);
    } else {
        $fileforbidarr&nbsp;=&nbsp;@file($fileforbid);
        if ($ip&nbsp;==&nbsp;substr($fileforbidarr[0], 0, strlen($ip))) {
            if ($time&nbsp;-&nbsp;substr($fileforbidarr[1], 0, strlen($time)) > 120) {
                @unlink($fileforbid);
            } else if ($fileforbidarr[2]&nbsp;&gt;&nbsp;$allowRefresh) {
                file_put_contents($fileht,&nbsp;$ip . "rn", FILE_APPEND);
                @unlink($fileforbid);
            } else {
                $fileforbidarr[2]++;
                file_put_contents($fileforbid,&nbsp;$fileforbidarr);
            }
        }
    }
}

//防刷新
$str = '';
$file&nbsp;=&nbsp;$logFilePath . 'ipdate.dat';
if (!file_exists($logFilePath)&nbsp;&amp;&amp;&nbsp;!is_dir($logFilePath)) {
    mkdir($logFilePath, 0777);
}

if (!file_exists($file)) {
    file_put_contents($file, '');
}

$uri&nbsp;=&nbsp;$_SERVER['REQUEST_URI'];//获取当前访问的网页文件地址
$checkip&nbsp;=&nbsp;md5($ip);
$checkuri&nbsp;=&nbsp;md5($uri);
$yesno = true;
$ipdate&nbsp;=&nbsp;@file($file);
foreach ($ipdate&nbsp;as&nbsp;$k => $v) {
    $iptem&nbsp;=&nbsp;substr($v, 0, 32);
    $uritem&nbsp;=&nbsp;substr($v, 32, 32);
    $timetem&nbsp;=&nbsp;substr($v, 64, 10);
    $numtem&nbsp;=&nbsp;substr($v, 74);
    if ($time&nbsp;-&nbsp;$timetem < $allowtime) {
        if ($iptem&nbsp;!=&nbsp;$checkip) {
            $str&nbsp;.=&nbsp;$v;
        } else {
            $yesno = false;
            if ($uritem&nbsp;!=&nbsp;$checkuri) {
                $str&nbsp;.=&nbsp;$iptem . $checkuri&nbsp;.&nbsp;$time . "rn";
            } else if ($numtem&nbsp;&lt;&nbsp;$allownum) {
                $str&nbsp;.=&nbsp;$iptem . $uritem&nbsp;.&nbsp;$timetem . ($numtem + 1) . "rn";
            } else {
                if (!file_exists($fileforbid)) {
                    $addforbidarr&nbsp;=&nbsp;array($ip . "rn", time() . "rn", 1);
                    file_put_contents($fileforbid,&nbsp;$addforbidarr);
                }
                file_put_contents($logFilePath&nbsp;.&nbsp;&#39;forbided_ip.log&#39;,&nbsp;$ip . '--' . date('Y-m-d H:i:s', time()) . '--' . $uri . "rn", FILE_APPEND);
                //$timepass&nbsp;=&nbsp;$timetem + $allowtime&nbsp;-&nbsp;$time;
                $message = '警告:不要刷新的太频繁!';
                if ($type === 'API') {
                    return $message;
                }
                $this-&gt;error($message);
            }
        }
    }
}

if ($yesno) {
    $str&nbsp;.=&nbsp;$checkip . $checkuri&nbsp;.&nbsp;$time . "rn";
}

file_put_contents($file,&nbsp;$str);
?>

转载:请输入链接描述

Typecho赞赏功能

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

薇拉航线🌺

(๑>ڡ<)☆谢谢老板们的投食~

使用微信扫描二维码完成支付


所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

添加新评论

生命要得到丰盛的收获,必需阳光;同时,也需要“雨”的浇灌。

人生应该树立目标,否则你的精力会白白浪费。

山涧的泉水经过一路曲折,才唱出一支美妙的歌。

如若不是为了一个人,谁肯枯守一座城。城市和爱情,总是有着这样那样的关系。我们会因为一个人,去到那座城,因为那是一座爱的城;我们也会因为一个人,离开一座城,那是一座绝望的伤城。

常求有利别人,不求有利自己。