通过ASP程序实现限制国内访问网站(已修复)
发布:vip | 发布时间: Wednesday, July 27, 2011之前,有客户问过我,网站想限制一些地区访问通过IP如何实现?当时我只简单引导客户通过购买的空间,在空间商控制面板里做相应的IP限制。。大多空间商都会提供一个IP访问限制,可是功能是相当有局限性的。。不可能把所有的国内IP都添加上。。这将需要一个十分庞大的IP数据库吧?
由于当时忙于其它,客户也只是出于好奇问问了解。。没太在意好的实现办法。也不知道那客户后来解决或找到更好的办法没有。。?其实我当时有些疑惑,为神马要限制访问呢?好奇怪。。有些客户为神马就是要做这样的限制。。啊?
后来考虑到,有些公司是专做外贸,只针对海外客户。并不是要刻意的限制国内的朋友访问网站,只是这样限制可以防止一些恶作剧的黑客朋友对网站安全进行威胁或占用空间的IIS连接数。。甚至同行攻击或其它会影响到网站正常运行的行为?的确会有客户需要类似这样的功能。也考虑到,一些软件的扫描,而在技术实现方面也很值得探讨。。
Function leleToStr(str)
Dim stream
Set stream=Server.CreateObject("ADODB.Stream")
With stream
.Type=1
.Mode=3
.Open
.Write str
.Position = 0
.Type = 2
.Charset = "gb2312"
leleToStr = .ReadText
.Close
End With
Set stream=Nothing
End Function
'获取IP所在地区
Function getIPAddress(ip)
on error resume next
dim xmlhttp,url,PostData
PostData="searchip1="&ip
url = "upload/201107270119005102.gif" />
功能实现后,优化是大家关注的焦点。我也是
。。却实,这段代码,如果添加到我们程序里,每次打开都执行一次,会影响网站的打开速度,而且明显。。有利也有弊不讲,要只为了一个这样的功能影响网站打开影响网站运行及经营带来的损失就得不尝失了。。呃,蛋疼。。
后来想了想,大可以用Cookie来实现判断来解决影响网站访问速度的问题。。哈。一些长篇描述说明不再说明啦。。看代码分析问题。。
程序代码:dim ip:ip = request.ServerVariables("REMOTE_ADDR")
if request.Cookies("ip") = "" then
response.Cookies("ip") = getIPAddress(ip)
response.Cookies("ip").Expires = now() + 365 '设置有效期,下次打开Cookie不会失效
else
if Instr(request.Cookies("ip"),"中国")>0 then response.write "本站暂时禁止国内访问,谢谢光临!":response.end
end if
%>
这样一来,只是首次打开网站时定位到:http://ip.qq.com检测IP所在地区,下次会通过Cookies来判断,解决了打开速度的问题。。
- 相关文章:
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





