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访问查询mysql数据的三种方法
Oct 09 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
php学习之简单计算器实现代码
Jun 09 PHP
php根据年月获取季度的方法
Mar 31 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
php实现可逆加密的方法
Aug 11 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
php多进程应用场景实例详解
Jul 22 PHP
laravel框架创建授权策略实例分析
Nov 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
基于jquery的放大镜效果
2012/05/30 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
详解js闭包
2014/09/02 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
团代会闭幕词
2015/01/28 职场文书
2015年老干部工作总结
2015/04/23 职场文书
python 实现图片特效处理
2022/04/03 Python