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 相关文章推荐
centos 5.6 升级php到5.3的方法
May 14 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
smarty中常用方法实例总结
Aug 07 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
php绘图之生成饼状图的方法
2015/01/24 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
独特的python循环语句
2016/11/20 Python
通过Pandas读取大文件的实例
2018/06/07 Python
python中的二维列表实例详解
2018/06/19 Python
python list格式数据excel导出方法
2018/10/31 Python
Python中正则表达式的用法总结
2019/02/22 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
秋季运动会广播稿大全
2014/02/17 职场文书
设计顾问服务计划书
2014/05/04 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
护士辞职信怎么写
2015/02/27 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技