PHP禁止个别IP访问网站

 更新时间:2013年10月30日 16:44:28   作者:  
PHP禁止个别IP访问自己的网站,可以看看下面的方法是如何做到的。

想不让某个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几行代码实现CSV格式文件输出

    详解php几行代码实现CSV格式文件输出

    本篇文章主要介绍了详解php几行代码实现CSV格式文件输出,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 获取URL文件名后缀

    获取URL文件名后缀

    用php分析URL网址,可以得到文件名、目录路径,还有其它数据,原理就是使用PHP的explode函数分隔字符串。
    2013-10-10
  • ThinkPHP在新浪SAE平台的部署实例

    ThinkPHP在新浪SAE平台的部署实例

    这篇文章主要介绍了ThinkPHP在新浪SAE平台的部署的实现方法,以实例的形式详细讲述了WBlog的完整部署过程,需要的朋友可以参考下
    2014-10-10
  • php一键打包压缩目录文件示例代码

    php一键打包压缩目录文件示例代码

    这篇文章主要介绍了php一键打包压缩目录文件代码示例,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • Yii针对添加行的增删改查操作示例

    Yii针对添加行的增删改查操作示例

    这篇文章主要介绍了Yii针对添加行的增删改查操作,涉及Yii结合jQuery针对页面元素的动态操作及数据库增删改查等操作相关实现技巧,需要的朋友可以参考下
    2016-10-10
  • ThinkPHP模板替换与系统常量及应用实例教程

    ThinkPHP模板替换与系统常量及应用实例教程

    这篇文章主要介绍了ThinkPHP模板替换与系统常量及应用,是很重要的概念,需要的朋友可以参考下
    2014-08-08
  • 详解PHP处理密码的几种方式

    详解PHP处理密码的几种方式

    本篇文章主要介绍了PHP处理密码的几种方式,详细的介绍了对密码的加密处理问题,有需要的可以了解一下。
    2016-11-11
  • yii2实现Ueditor百度编辑器的示例代码

    yii2实现Ueditor百度编辑器的示例代码

    这篇文章主要介绍了yii2实现Ueditor百度编辑器的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • php操作redis缓存方法分享

    php操作redis缓存方法分享

    除了memcache这个比较常用的php的操作类库,我们可能还非常熟悉一个内存缓存的东西,那就是redis,我们给大家分享的这个php技术文章,就是关于如何使用php进行操作redis这个内存缓存工具类库的哦。
    2015-06-06
  • PHP 图片上传实现代码 带详细注释

    PHP 图片上传实现代码 带详细注释

    PHP 图片上传实现代码 带详细注释,喜欢的朋友可以学习下。
    2010-04-04

最新评论