通过JS限制某个IP段访问网页

wwd2009 2014-10-09 10:43:55
我现在有网站,要求只要这网段IP:172.16.0.0到172.18.0.0.可以访问。其他访问者跳转一个提示页面去。
到请高手帮帮。内容网页是生成静态方式。
谢谢。
...全文
1594 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwd2009 2014-10-11
  • 打赏
  • 举报
回复
怎么放在一起使用
wwd2009 2014-10-11
  • 打赏
  • 举报
回复
服务器上放一个IP.asp页面可以获取IP <% Private Function getIP() Dim strIPAddr If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then strIPAddr = Request.ServerVariables("REMOTE_ADDR") ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) Else strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") End If getIP = Trim(Mid(strIPAddr, 1, 30)) End Function ip=getip() %> 可以在服务器上放上这个代码,获得客户端IP。 但是怎么把获取的IP,能够跳转,应用在静态页面里。然后让静态页判断IP是不是在段内??? 有js脚本判断IP并跳转。 var IPAddr=ip; var ist = ip2int("172.16.0.0"); var ied = ip2int("172.18.255.255"); if (IPAddr<=ist||IPAddr>=ied) { alert("对不起,你不"+IPAddr+"被允许查看此页"); window.location.href="http://www.baidu.com"; } //IP转成整型 function ip2int(ip) { var num = 0; ip = ip.split("."); num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]); num = num >>> 0; return num; } 关键怎么在html使用
wwd2009 2014-10-11
  • 打赏
  • 举报
回复
请问怎么做?? 网站是ASP的,生成静态html网页。 请问怎么做???
guanpuwcg3 2014-10-11
  • 打赏
  • 举报
回复
这个根本就不应该是js做的事情,照你这么做只要别人把浏览器禁用js就能绕过你的限制了,有意义吗?
KEN-YANG 2014-10-10
  • 打赏
  • 举报
回复
个人理解是:首先判断访客的IP,判断是否在这个区间,
Go 旅城通票 2014-10-09
  • 打赏
  • 举报
回复
引用 5 楼 wwd2009 的回复:
IP是借助http://counter.sina.com.cn/ip来获取的。但是我不会写IP比较代码,不会比较是不是在这个段内。求高手解决~
转为数字后比较啊
<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script>
<script>
function IpToNumber(ip){//IP地址转为数字
  var arr=ip.split('.');
  return 256*256*256*parseInt(arr[0])+256*256*parseInt(arr[1])+256*parseInt(arr[2])+parseInt(arr[3])
}
var start=IpToNumber("172.16.0.0"),end=IpToNumber("172.18.0.0"),myip=IpToNumber(ILData[0]);
if(myip<start||myip>end){
   alert('不在ip段内!');
   location='xxxxxxx';
}
</script>
save4me 2014-10-09
  • 打赏
  • 举报
回复
你的网站是ASP还是ASP.NET?服务器是什么? 可以试试用URL Rewrite试试
wwd2009 2014-10-09
  • 打赏
  • 举报
回复
IP是借助http://counter.sina.com.cn/ip来获取的。但是我不会写IP比较代码,不会比较是不是在这个段内。求高手解决~
残风兮兮 2014-10-09
  • 打赏
  • 举报
回复
你都能获取到访问的IP,在页面处理下就行了撒
slwsss 2014-10-09
  • 打赏
  • 举报
回复
iis 上配置
wwd2009 2014-10-09
  • 打赏
  • 举报
回复
可以通过这个得到IP关键是怎么限制,并跳转 <script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script> <!--获取接口数据,注意charset --> <script type="text/javascript"> document.writeln("IP地址:"+ILData[0]+"<br />"); //输出接口数据中的IP地址 document.writeln("地址类型:"+ILData[1]+"<br />"); //输出接口数据中的IP地址的类型 document.writeln("地址类型:"+ILData[2]+"<br />"); //输出接口数据中的IP地址的省市 document.writeln("地址类型:"+ILData[3]+"<br />"); //输出接口数据中的IP地址的 document.writeln("地址类型:"+ILData[4]+"<br />"); //输出接口数据中的IP地址的运营商 </script> 使用新浪的接口, 其中第一个值就是ip地址
wwd2009 2014-10-09
  • 打赏
  • 举报
回复
可以实现吗???网站是asp程序。有别的方法吗Q

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧