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 相关文章推荐
检测png图片是否完整的php代码
Sep 06 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
php实现的用户查询类实例
Jun 18 PHP
PHP中Http协议post请求参数
Nov 02 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 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实现仿Google分页效果的分页函数
2015/07/29 PHP
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
Python模块的制作方法实例分析
2019/12/21 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
六一亲子活动总结
2014/07/01 职场文书
意向书范本
2014/07/29 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
医者仁心观后感
2015/06/17 职场文书
2015入党个人自传范文
2015/06/26 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
基于redis+lua进行限流的方法
2022/07/23 Redis