飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

ASP:允许/屏蔽外地IP段的函数代码

Author:flymorn Source:Flymorn
Categories:Asp编程 PostTime:2009-9-3 22:43:20
正 文:
    做本地分类信息网站的朋友一般都会遇上外地用户发布大量的虚假甚至诈骗信息,仅仅凭人工去判断不仅费时费力,而且人工判断有时也不能完全判别信息的虚假,这时站长有必要为自己的本地网站加上屏蔽外地IP的功能。飘易这里就贴出ASP版本的屏蔽/允许外地IP的函数代码:

    关于如何获取IP138的IP数据地址信息,大家可以看飘易站内的这篇文章。

    代码如下,有需要的朋友可能需要结合自己的网站特点稍微加工下:

<%
dim ip1 
'==========需要屏蔽的IP段,多个以|分割
'==========可以自行添加IP或IP段,如123.12.11.*屏蔽的范围是123.12.11.1-123.12.11.255
ip1="123.12.11.*|112.23.*.*|120.177.237.160"


''===========下面的函数请不要修改========
''获取IP函数Start
function ipw()
dim ipw1
ipw1=Request.ServerVariables("REMOTE_ADDR")
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
ipw1=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
ipw=ipw1
end function
''获取IP函数End

function ipwint(n) '取IP4地址的前几段
dim ipw2,ipw3
if n>4 then n=4
ipw2=split(ipw(),".")
ipw3=""
for i=0 to n-1
ipw3=ipw3&ipw2(i)
next
ipwint=ipw3
end function

'取ip的前2、3、4位
dim ipu2,ipu3,ipu4
ipu2=ipwint(2)
ipu3=ipwint(3)
ipu4=ipwint(4)

dim ip11,ip12,ip13,x,noip
noip=0
ip11=split(ip1,"|")
for i=lbound(ip11) to ubound(ip11) '外循环
ip12=split(ip11(i),".")
ip13=""
x=0
for p=0 to ubound(ip12)  '具体的iP
if ip12(p)<>"*" then
ip13=ip13&ip12(p) '中间变量
x=x+1
else
exit for
end if
next
'判断取几位
Select Case x
case 2
if instr(ip13,ipu2)>0 then
noip=1
exit for
end if
case 3
if instr(ip13,ipu3)>0 then
noip=1
exit for
end if
case 4
if instr(ip13,ipu4)>0 then
noip=1
exit for
end if
End Select
next

if noip=1 then
response.write "<br><br><center><h3>非常抱歉,飘易系统检测您的IP段属于被限制范围。<br><br><a href=http://www.piaoyi.org>返回</a>.</h3></center> "
response.end
end if
%>

    关于如何获取IP138的IP数据地址信息,大家可以看飘易站内的这篇文章。
作者:flymorn
来源:Flymorn
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:查询搜狗SR的插件(傲游2)
下一篇:2009 Google AdSense合作伙伴日视频
4条评论 “ASP:允许/屏蔽外地IP段的函数代码”
2009-9-8 14:05:43
好久没来你博客看了。今天到访,文章不错。。望回访。:》
2009-9-16 17:42:54
楼主真是太棒了,谢谢分享这么好的干货
2009-9-30 10:14:35
这个功能不错,借用了哈
2009-9-30 17:40:32
学习了,不错哦。
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2010 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有 渝ICP备07006361号