如何在静态网页中实现禁止某IP访问,交流~

JavaScript010

如何在静态网页中实现禁止某IP访问,交流~,第1张

问题分析:

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>