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新手上路(五)
Oct 09 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
php入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
smarty中常用方法实例总结
Aug 07 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 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
基于php-fpm 参数的深入理解
2013/06/03 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
jquery $.getJSON()跨域请求
2011/12/21 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
在Python的Django框架中包装视图函数
2015/07/20 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python守护线程用法实例
2017/06/23 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python实现一组典型数据格式转换
2018/12/15 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python实现的自动发送消息功能详解
2019/08/15 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
python如何建立全零数组
2020/07/19 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
教育英语专业毕业生的求职信
2014/03/13 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
人事任命书范文
2014/06/04 职场文书
2014财务年度工作总结
2014/11/11 职场文书
员工工作能力评语
2014/12/31 职场文书
小学思想品德教学反思
2016/02/24 职场文书