PHP禁止个别IP访问网站


Posted in PHP onOctober 30, 2013

想不让某个IP访问网站,可以封他的IP,下面就提供这个方法。看下面的代码。

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['region']=='湖北省' && !isCrawler()){
        exit('http://www.a.net');
    }
}
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;
}
PHP 相关文章推荐
用PHP的ob_start();控制您的浏览器cache!
Nov 25 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
php fsockopen解决办法 php实现多线程
Jan 20 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 #PHP
使用PHP Socket写的POP3类
Oct 30 #PHP
腾讯QQ微博API接口获取微博内容
Oct 30 #PHP
FireFox浏览器使用Javascript上传大文件
Oct 30 #PHP
php使用ICQ网关发送手机短信
Oct 30 #PHP
PHP分页详细讲解(有实例)
Oct 30 #PHP
php预定义变量使用帮助(带实例)
Oct 30 #PHP
You might like
重置版游戏视频
2020/04/09 魔兽争霸
提问的智慧
2006/10/09 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
把input初始值不写value的具体实现方法
2013/07/04 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
python 快速排序代码
2009/11/23 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python一键去抖音视频水印工具
2018/09/14 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
经济系大学生求职信
2013/10/01 职场文书
三年级数学教学反思
2014/01/31 职场文书
研讨会主持词
2014/04/02 职场文书
面试通知邮件
2015/04/20 职场文书
网络舆情信息简报
2015/07/21 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
Apache POI的基本使用详解
2021/11/07 Servers
MySQL存储过程及语法详解
2022/08/05 MySQL