如何禁止代理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;
}