js 获取是否网络代理

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

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

window.οnlοad=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:
 * Copyright © 
*/
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;
}

原文地址:https://www.cnblogs.com/hzcya1995/p/13317323.html