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数据库的一个类
Apr 21 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
php实现的zip文件内容比较类
Sep 24 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
php 中奖概率算法实现代码
Jan 25 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 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.MVC的模板标签系统(三)
2006/09/05 PHP
php cache类代码(php数据缓存类)
2010/04/15 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
Python 不同对象比较大小示例探讨
2014/08/21 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
Python线程同步的实现代码
2018/10/03 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
详解python中的lambda与sorted函数
2020/09/04 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
四年级小学生评语
2014/12/26 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
党性修养心得体会2016
2016/01/21 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python