注册 登录
编程论坛 ASP技术论坛

求助通过ip控制访问部分网页新闻asp代码

lwqing 发布于 2010-04-11 09:20, 1579 次点击
所有的新闻内容页面都是通过例如:show.asp来显示的,如何通过ip地址来让部分新闻只有只有允许的ip段能看,而其他的新闻所有人都能浏览?
提供资料如下:
允许的ip地址段:127.0.0.*
数据库db.mdb
表news
字段source
如果字段source中的内容为“允许”,并且ip地址属于上面代码范围内,才可以浏览访问(必须同时满足以上两点因素);只满足一条或都不满足,显示无访问权限
如果字段source中的内容不是“允许”,无论ip地址是否在上面代码范围内,都能浏览访问


先谢谢各位了
11 回复
#2
yms1232010-04-11 12:55
新闻表内存在允许的Ip段?
#3
longxuanxuan2010-04-11 15:58
通过IP  限制 用户  ,有这样的方法吗?
#4
zzy_4202010-04-11 21:29

用 server 获取浏览者的IP地址,再截取其相应的 IP 段,再与自己想要限制的IP段相比较或者看其是否是自己允许访

问的IP段,之后根据需要 动态输出新闻列表。字段source中的内容为不知道楼主根据什么条件设置。



[ 本帖最后由 zzy_420 于 2010-4-11 21:35 编辑 ]
#5
aspic2010-04-11 23:27
直接获取浏览者ip 对比一下就可以了
#6
lwqing2010-04-12 18:24
以下是引用zzy_420在2010-4-11 21:29:38的发言:


用 server 获取浏览者的IP地址,再截取其相应的 IP 段,再与自己想要限制的IP段相比较或者看其是否是自己允许访

问的IP段,之后根据需要 动态输出新闻列表。字段source中的内容为不知道楼主根据什么条件设置。
字段source的内容就是汉字“允许”2个字
程序代码:
<%
'限制IP地址(段)集合,星号为通配符。
Const BadIPGroup = "10.117.29.*"
If IsForbidIP(BadIPGroup) = False Then
    Response.Write(
"<br><br><p align=center><font size=6>无访问权限</font></p>")
    Response.End()
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
%>
此段代码能单独限制ip段,但是如何与source相结合使用?最好能给出完整代码,谢谢
#7
lwqing2010-04-12 18:26
另外,数据库是通过<!--#include file="conn.asp"-->进行调用的,不需另外写入代码中
#8
lwqing2010-04-12 18:35
举例子:
新闻输入页面如果是http://127.0.0.1/list.asp,
新闻一 http://127.0.0.1/list.asp?id=68  因为ip段和字段source内容都符合,只有给出的ip段内的用户能浏览;
新闻二 http://127.0.0.1/list.asp?id=66  因为ip段或source只有其中一项符合,所有人都能浏览     
#9
zhuyunshen2010-04-12 18:36
fgdsdfs
#10
gupiao1752010-04-13 11:51
搂主把问题复杂化了吧?
既然取得IP,进行验证,然后再判断SOURCE字段是否允许,如果可以就直接访问,如果不是就禁止!
其他新闻内容为所有人都可见,一切都根据SOURCE字段的TURE或FALSE来进行判断!
#11
lwqing2010-04-13 22:45
以下是引用gupiao175在2010-4-13 11:51:40的发言:

搂主把问题复杂化了吧?
既然取得IP,进行验证,然后再判断SOURCE字段是否允许,如果可以就直接访问,如果不是就禁止!
其他新闻内容为所有人都可见,一切都根据SOURCE字段的TURE或FALSE来进行判断!
能直接写一个完整的代码么,谢谢
#12
lwqing2010-04-15 21:07
以下是引用gupiao175在2010-4-13 11:51:40的发言:

搂主把问题复杂化了吧?
既然取得IP,进行验证,然后再判断SOURCE字段是否允许,如果可以就直接访问,如果不是就禁止!
其他新闻内容为所有人都可见,一切都根据SOURCE字段的TURE或FALSE来进行判断
帮忙写一个啦,谢谢,谢谢啊
1