• 欢迎关注我的微信公众号“ ifalost ” 右边扫描关注 --->>

记一次JS中AJAX 获取客户端是否使用代理IP访问

Code Log 神棍 2390℃ 0评论
  • Auther:Falost
  • Time:20151205
  • Environment:PHP、JS、HTML
  • Function:AJAX

今日一小伙伴找我询问,如何禁止代理IP访问网站,当时第一个想到的就是使用PHP呗(个人比较喜欢的语言之一)
但是他的站点是HTML的,哎呀!HTML的那怎么运行PHP呢,不过他的服务器有PHP环境哦。
好吧,既然是HTML的吧,那JS应该可以的吧,但是JS获取用户IP的接口没有一个是靠谱的;那就用PHP了,下面就不罗嗦了,直接代码走起来!

利用AJAX功能来实现目的吧!直接代码上起来
isIp.JS

window.onload=function(){
    var xhr=getXhr();
    xhr.open('get','isIp.php');
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhr.send();
    xhr.onreadystatechange=function(){
        if (xhr.readyState==4&&xhr.status==200)
        {
            var text=xhr.responseText;
           if(text=='true'){
               alert("你使用了代理IP,本站禁止访问");
               window.location.href="http://www.xdcity.cn";
           }else{
               console.log("你是良民哦!")
           }
        }
    }
}
function getXhr(){
    // 1 定义一个空对象
    var xhr = null;
    // 2 判断当前浏览器是否支持该核心对象
    if(window.XMLHttpRequest){
        // 当前浏览器支持该对象:其它浏览器
        xhr = new XMLHttpRequest();
    }else{
        // 当前浏览器不支持该对象:IE浏览器
        xhr = new ActiveXObject('Microsoft.XMLHttp');
    }
    return xhr;
}

isIp.php

php
/*
 * Author:神棍、Falost
 * Copyright © SCK Team
*/
if(!empty($_SERVER['HTTP_VIA'])) //使用了代理
{
    if(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        //Anonymous Proxies    普通匿名代理服务器
        //echo $_SERVER['REMOTE_ADDR'];//代理IP地址
        echo true;
    }else
    {
        //Transparent Proxies 透明代理服务器
        //echo $_SERVER['REMOTE_ADDR'];//代理IP地址为
        //echo $_SERVER['HTTP_X_FORWARDED_FOR']; //真实IP
        if($_SERVER['REMOTE_ADDR']){
            echo true;
        }
    }
}else{
    echo false;
}

想要的功能已经实现了!

欢迎大家吐槽!

 

转载请注明:Falost的小窝 » 记一次JS中AJAX 获取客户端是否使用代理IP访问

如果你觉得这篇文章不错或者对你有帮助,想请我喝一杯咖啡,可以打赏
喜欢 (7)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址