2016-11-15 119 views
-3

如何使用ASP Classic(Windows服务器)限制我的网站访问美国。我阅读了htaccess,但不确定如何将其实现为ASP经典编程语言。如何限制只有美国的网站访问

+2

.htaccess文件特定于Apache服务器,而Classic ASP仅在IIS上运行。无论如何,你需要阻止IP范围,这是你需要做的服务器防火墙设置,而不是通过传统的ASP。这个问题是值得一读http://stackoverflow.com/questions/2111246/how-to-limit-web-site-access-to-usa-or-north-america-only – John

+0

也@John黑名单知识产权是穷人因为它们很容易被欺骗。 – Lankymart

+0

您将获得Netflix的所有成功:即无 –

回答

1

您可以通过实现允许您设置IP范围的IIS模块(即Helicon Ape)来添加htaccess功能。这样的模块必须安装在Windows Web服务器(Server 2008及更高版本)上,并将在您的IIS管理器中进行配置。完成此操作后,您可以像在Apache服务器上一样使用htaccess。

另一种(神奇的)方式是对远程IP地址进行服务器端检查。

首先,你需要获取远程IP地址

remote_addr = Request.ServerVariables("REMOTE_ADDR"); 

然后你就可以比较给定范围

function compareIps(ip, lowrange, highrange) 
    dim octetIPArray(4) as integer, octetIPLowArray(4) as integer, octetIPHighArray(4) as integer 
    compareIps = False 
    octetArray = split(ip, '.', -1, vbtextcompare) 
    octetIPLowArray = split(lowrange, '.', -1, vbtextcompare) 
    octetIPHighArray = split(highrange, '.', -1, vbtextcompare) 

    for i = 0 to 3 
     if octetArray(i) >= octetIPLowArray(i) and octetArray(i) <= octetIPHighArray(i) then 
     compareIps = True 
     exit function 
     end if 
    next 
    end function 

if compareIps(remote_addr, "3.0.0.0","3.255.255.255")=True then 
    response.end 
end if 

请注意,在美国IP流量的情况下,有quite a few ranges阻止(近7.000)。

正如已经评论过的,IP可以被欺骗,所以它不是100%安全的方法。