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下实现伪 url 的超简单方法[转]
Sep 24 PHP
php xml文件操作代码(一)
Mar 20 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
非常重要的php正则表达式详解
Jan 04 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 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页面间参数传递的四种方法详解
2013/06/09 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
php 魔术方法详解
2014/11/11 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
python读取文本中的坐标方法
2018/10/14 Python
Django REST framework视图的用法
2019/01/16 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python pandas模块基础学习详解
2019/07/03 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
浙大毕业生自荐信
2014/01/26 职场文书
《问银河》教学反思
2014/02/19 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android