在线情况
楼主
  • 头像
  • 级别
    • 声望+2
    • 积分93
    • 经验17904
    • 文章80
    • 注册2014-07-17
    关于对“注册者IP”限制的实现(变了思路解决)
    [P]首先看到MAN之前的贴子说会有解决方案,哈哈,自美一下,给MAN点赞。。。。。[/P][P]话说,本着学习的目的,来个简单版的先凑合下。。。[/P][P]于是有了如下:[/P][P]在register.asp的一开头增加:[/P][P][CODE]
    ip=Request.ServerVariables("REMOTE_ADDR")
    allowip1="172.16.5.0"
    allowip2="172.16.129.255"
    response.write checkip(ip,allowip1,allowip2)
    function checkip(ip,allowip1,allowip2)
    dim check(4)
    checkip=false
    ipstr=split(ip,".")
    allow1=split(allowip1,".")
    allow2=split(allowip2,".")
    if cint(allow1(0))>cint(allow2(0)) then
    response.write "禁止访问"
    exit function
    end if
    for i=0 to ubound(ipstr)
    if cint(allow1(i))<cint(allow2(i)) then
    if cint(allow1(i))=cint(ipstr(i)) then
    check(i)=true
    checkip=true
    exit for
    else
    if cint(ipstr(i))<cint(allow2(i)) then
    check(i)=true
    checkip=true
    exit for
    else
    if cint(ipstr(i))>cint(allow2(i)) then
    check(i)=false
    checkip=false
    exit for
    else
    check(i)=true
    checkip=true
    end if
    end if
    end if
    else
    if cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))<cint(ipstr(i)) then
    check(i)=false
    checkip=false
    if i<>ubound(ipstr) then
    exit for
    end if
    else
    check(i)=true
    end if
    end if
    next
    if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then
    checkip=true
    else
      response.Write("<script>alert('仅限公司局域网内方可进行注册!');javascript:history.go(-1)</script>")
    end if
    end function
    [/CODE][/P][P] [/P][P]并不成功,请大家指点下。。感谢,新手求教~~~[/P]
    [ 此贴最后由 boyhong 在2014-7-21 10:47:34编辑过 ]
    asp技术学习感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 声望+2
      • 积分125
      • 经验36432
      • 文章106
      • 注册2014-07-11
      [P]把ip转换成数字比较,简单一点[/P][P]比如 168.177.1.1转换成数字[/P][P]168*256*256*256+177*256+1*256+1[/P][P] [/P][P]这样直接好用大于或小于比较了[/P]
      此帖受到1次评价, 累计:积分+3
      asp技术学习感谢您的参与
      在线情况
      3
      • 头像
      • 小笨的爸爸
      • 级别
      • 徽章
      • 职务总版主
      • 声望+59
      • 积分8242
      • 经验618599
      • 文章7628
      • 注册2006-03-24
      [CODE]ip=Request.ServerVariables("REMOTE_ADDR") allowip="172.16.5.0|172.16.129.255" if Instr(allowip,ip) <= 0 then Response.Write"禁止访问" Response.end end if[/CODE]
      asp技术学习感谢您的参与
      在线情况
      4
      • 头像
      • 级别
        • 声望+2
        • 积分93
        • 经验17904
        • 文章80
        • 注册2014-07-17
        [P][QUOTE][B]下面引用由[@名字没法再长了#139173]发表的内容:[/B] ip=Request.ServerVariables("REMOTE_ADDR") allowip="172.16.5.0|172.16.129.255" i...[/QUOTE] [/P][P]感谢楼上两位热心朋友的回贴支持。。。。我是想指定几个局域网IP段,而不仅仅是这两个IP地址。。。还有,我新入LEADBBS,还是学习中,这样的ASP代码直接放入Register.asp的顶部,会报错不能运行的。接着请教。。。。[/P]
        asp技术学习感谢您的参与
        在线情况
        5
        • 头像
        • 级别
          • 声望+2
          • 积分125
          • 经验36432
          • 文章106
          • 注册2014-07-11
          [QUOTE][b]下面引用由[@boyhong]发表的内容:[/b] [P]感谢楼上两位热心朋友的回贴支持。。。。我是想指定几个局域网IP段,而不仅仅是这两个IP地址。。。还有,我新入[/P][P]LEADBBS,还是学习中,这样的ASP代码直接放入Register.asp的顶部,会报错不...[/QUOTE] [/P][P]用我的思路就行了,ip拆成四段,转成数字比较[/P]
          此帖受到1次评价, 累计:积分+1
          asp技术学习感谢您的参与
          在线情况
          6
          • 头像
          • 级别
            • 声望+2
            • 积分93
            • 经验17904
            • 文章80
            • 注册2014-07-17
            [P][QUOTE][B]下面引用由[@bilibilis#201376]发表的内容:[/B] 用我的思路就行了,ip拆成四段,转成数字比较[/QUOTE] [/P][P]感谢您热心的答复,后来我换了一个思路解决这个问题:[/P][P]我的解决方法是:[/P][P]修改:User_fun.ASP 文件中的:IsValidEmail(Email)[/P][P]在里边增加了:[/P][P][CODE] if Right(Email, 11)<>"xxxx.com.cn" then IsValidEmail = false Exit Function End If [/CODE][/P][P]这么做的理由是: 我这有内部域名的邮件服务器,限制邮件中的域名部分,也可达到我在一楼的需求,即实现保证只有公司内部的员工方可注册。[/P][P] [/P]
            asp技术学习感谢您的参与
            在线情况
            7
            • 头像
            • 级别
              • 声望+2
              • 积分93
              • 经验17904
              • 文章80
              • 注册2014-07-17
              当然,也在等MAN的下个版本,若有管理后台开启:对注册IP的白名单和黑名单的功能。。。那才是真正的解决方案~[EM282]
              asp技术学习感谢您的参与
              Page created in 0.0234 seconds with 6 queries.