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 相关文章推荐
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
PHP中实现Bloom Filter算法
Mar 30 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
php集成动态口令认证
Jul 21 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
php字符集转换
Jan 23 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 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 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python中使用print输出中文的方法
2018/07/16 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
简历中的自我评价怎么写
2014/01/29 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
食品药品安全责任书
2015/05/11 职场文书
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android