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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
从PHP的源码中深入了解stdClass类
Apr 18 PHP
Eclipse的PHP插件PHPEclipse安装和使用
Jul 20 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
php中in_array函数用法分析
Nov 15 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 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
用Socket发送电子邮件
2006/10/09 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
学习YUI.Ext 第七天--关于View&JSONView
2007/03/10 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
javascript radio 联动效果
2009/03/04 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
ext jquery 简单比较
2010/04/07 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
js倒计时抢购实例
2015/12/20 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python链接Oracle数据库的方法
2015/06/28 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
python 如何调用远程接口
2020/09/11 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
阿拉伯书店:Jamalon
2019/07/24 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
会计专业个人自我鉴定
2014/03/21 职场文书
高中生班主任评语
2014/04/25 职场文书
如何写求职信
2014/05/24 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
房产遗嘱范本
2015/08/06 职场文书
详解Python牛顿插值法
2021/05/11 Python
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers