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对gzip文件或者字符串解压实例参考
Jul 25 PHP
基于empty函数的输出详解
Jun 17 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
php控制文件下载速度的方法
Mar 24 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
PHP中cookie知识点学习
May 06 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
Jun 05 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
PHP实现考试倒计时功能代码
Apr 16 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
通过源码分析Python中的切片赋值
2017/05/08 Python
Django框架模板的使用方法示例
2019/05/25 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
高中毕业生的个人自我评价
2014/02/21 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
2014司机年终工作总结
2014/12/05 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
会计试用期自我评价
2015/03/10 职场文书
病危通知书样本
2015/04/17 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python