标题:求助通过ip控制访问部分网页新闻asp代码
只看楼主
lwqing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-11
结帖率:100%
已结贴  问题点数:20 回复次数:11 
求助通过ip控制访问部分网页新闻asp代码
所有的新闻内容页面都是通过例如:show.asp来显示的,如何通过ip地址来让部分新闻只有只有允许的ip段能看,而其他的新闻所有人都能浏览?
提供资料如下:
允许的ip地址段:127.0.0.*
数据库db.mdb
表news
字段source
如果字段source中的内容为“允许”,并且ip地址属于上面代码范围内,才可以浏览访问(必须同时满足以上两点因素);只满足一条或都不满足,显示无访问权限
如果字段source中的内容不是“允许”,无论ip地址是否在上面代码范围内,都能浏览访问


先谢谢各位了
搜索更多相关主题的帖子: 访问 代码 asp 网页 
2010-04-11 09:20
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
新闻表内存在允许的Ip段?
2010-04-11 12:55
longxuanxuan
Rank: 2
来 自:河北省徐水县留村乡山东营村
等 级:论坛游民
帖 子:75
专家分:73
注 册:2010-3-10
得分:0 
通过IP  限制 用户  ,有这样的方法吗?
2010-04-11 15:58
zzy_420
Rank: 4
等 级:业余侠客
威 望:2
帖 子:78
专家分:217
注 册:2009-3-26
得分:10 

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

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



[ 本帖最后由 zzy_420 于 2010-4-11 21:35 编辑 ]
2010-04-11 21:29
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
得分:0 
直接获取浏览者ip 对比一下就可以了
2010-04-11 23:27
lwqing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-11
得分:0 
以下是引用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相结合使用?最好能给出完整代码,谢谢
2010-04-12 18:24
lwqing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-11
得分:0 
另外,数据库是通过<!--#include file="conn.asp"-->进行调用的,不需另外写入代码中
2010-04-12 18:26
lwqing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-11
得分:0 
举例子:
新闻输入页面如果是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只有其中一项符合,所有人都能浏览     
2010-04-12 18:35
zhuyunshen
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:212
专家分:455
注 册:2009-11-22
得分:0 
fgdsdfs
2010-04-12 18:36
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:10 
搂主把问题复杂化了吧?
既然取得IP,进行验证,然后再判断SOURCE字段是否允许,如果可以就直接访问,如果不是就禁止!
其他新闻内容为所有人都可见,一切都根据SOURCE字段的TURE或FALSE来进行判断!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-04-13 11:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302497-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.101515 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved