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 session安全问题分析
Jun 24 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
简单谈谈favicon
Jun 10 PHP
php去除二维数组的重复项方法
Nov 03 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 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实现文件安全下载
2006/10/09 PHP
BBS(php & mysql)完整版(六)
2006/10/09 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
python 多线程应用介绍
2012/12/19 Python
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
MySQL最常见的操作语句小结
2015/05/07 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python创建学生管理系统
2019/11/22 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
优秀团员个人事迹材料
2014/01/29 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书