1、提供给用户访问的是静态页面的URL,那就意味着只能在页面加载后进行判断
2、不能通过动态页面转向到静态页面
我的想法:
首先访问静态a.html,在这里面调用ajax或iframe来访问服务端进行IP验证,如果没问题,则进行前台静态页面跳转到b.html,否则,不进行跳转
优点:
1、在IP验证前不会加载真实页面,不用担心是否会有信息泄露
2、破解稍微有些难度,如果禁止JS或IFRAME也不能正常访问页面
缺点:
1、不太懂SEO,不知道会不会有影响
2、用户段浏览器必须打开JS
理论上实现不了,ip可以虚拟,而且很杂乱,除了运营商对外销售的ip还有很多是内部使用的,所以即使知道运营商的所有ip段也不可能那么全的知道国内所有ip,不过子网掩码倒是可以简单的多了。<SCRIPT language="JScript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>var ist = ipToInt("22.21.8.0")
var ied = ipToInt("22.21.8.256")
var ip = ipToInt(unescape(IPAddr))
if (ip >= ist &&ip <=ied)
{
alert("你不被允许查看此页")
window.location='http://163.com'
}
</SCRIPT>
<script type='text/javascript'>
function ipToInt(IP) {
var a = IP.split(".")
for (var i=0i<4i++) {
a[i] = parseInt(a[i])
if (isNaN(a[i])) a[i] = 0
if (a[i] <0) a[i] += 256
if (a[i] >255) a[i] -= 256
}
return ((a[0]<<16)*256)+((a[1]<<16)|(a[2]<<8)|a[3])
}
</script>