袁氏家谱网|袁氏论坛
袁氏家谱网_袁氏论坛,免费公益网站 - 『 网络技术』 - 今晚解决了两个问题:IP过滤和跳转
袁氏文化网首页 > 袁氏家谱网_论坛 > 站务公告 >『 网络技术』

 帖子标题: 今晚解决了两个问题:IP过滤和跳转
 
作者:资友 〇发表于: 2006-11-27 22:00:24楼主

今晚解决了两个问题:IP过滤和跳转

    袁氏留言本上发广告一直是令人心烦的事。从网上搜索IP过滤,竟然没有合适的。
今天买一书,上有一段过滤IP地址的码:
------------------------------------------------------
<%
Const BadIPGroup = "84.110.*.*|220.162.73.44|127.0.0.1"
'上面屏蔽的2个地址和1个地址段。
If IsForbidIP(BadIPGroup) = True Then
   Response.Write(GetIP &"<br>你所在ip段一些用户经常发布不受欢迎的信息<br>现已经把该部分ip举报到国家网络监察中心,并禁止该ip段用户访问.<br>")
   Response.End()
   else
  Response.Redirect("index555.asp")
End If
   
'****************************************************************
'参数vBadIP:要屏蔽的IP段,IP地址集合,用|符号分隔多个IP地址(段)
'返回Bool:True用户IP在被屏蔽范围,False 反之
'****************************************************************
Function IsForbidIP(vBadIP)
    Dim counter, arrIPPart, arrBadIP, arrBadIPPart, i, j
   
    arrBadIP = Split(vBadIP, "|")    
    arrIPPart = Split(GetIP(), ".")
   
    For i = 0 To UBound(arrBadIP)        
        counter = 0
        arrBadIPPart = Split(arrBadIP(i), ".")       
        For j = 0 To UBound(arrIPPart)             
            If(arrBadIPPart(j)) = "*" or Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Then           
                counter = counter + 1           
            End If           
        Next       
        If counter = 4 Then           
            IsForbidIP = True
            Exit Function
        End If       
    Next
   IsForbidIP = False
End Function

'***************
'返回客户IP地址
'***************
Function GetIP()
    Dim IP
    IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If IP = "" Then IP = Request.ServerVariables("REMOTE_ADDR")
    GetIP = IP
End Function
%>
 
</body>
</html>

-----------------------------------------------
后面两句说明了这段代码应加的位置。
   开始的时候,总提示编译错,后来在这段码子头尾加上<%   %>就不再有问题了。
-----------------------------------------------

    过滤IP的问题解决了,随之而来的问题是,如果属于要过滤的单个IP地址或者动态IP段,出现警告信息不走了,那么如果不是过滤的对象,怎么才能跳转呢?
    原先用在码尾放指向的URL,容易使代码执行完了条件语句后,接着执行后面的语句,等于是不是被过滤的IP段都依次执行跳转语句。看来只能在“如果是...就...”之间想办法。
----------------------------
  先试用url=""表达,但不知为什么,它就停在那里空白页不跳转了。
  后拭了Function Windows.open()等,结果同上。
  最后在if.....endif中间加一句,问题终于得到圆满解决:
 else
  Response.Redirect("index555.asp")
----------------------------
  感谢上帝,在制造无赖的同时,也发明了制裁无赖的“有奈”。

作者:冬雷 〇发表于: 2006-11-28 09:00:122

限制IP也不是最好的办法,一般都是用的动态IP,重新拨号IP就又变了的。这样就会变成,该限制的没有限制到,不该限制的反而限制了。
发广告的问题一直是聊天室、论坛、网站的一大难题。

作者:一笑 〇发表于: 2006-11-28 16:58:353

局域网的动态IP前两位数是不变的,其它宽带是固定的。
无线网卡的IP是到处乱跑的。

笑一笑,十年少;好多事,昨天急;
今天再面对它,一笑了之...
作者:资友 〇发表于: 2006-11-30 15:32:284

这两天那个可恶的手机彩铃下载广告没有了,袁氏留言上清静了许多。


 9 7 1 8 : 此主题共有4帖 此页4帖 每页8



友情链接