如何限制仅限美国的网站访问

时间:2016-11-15 22:57:36

标签: iis asp-classic

如何使用ASP Classic(Windows服务器)限制我的网站访问美国。我读到了关于htaccess的内容,但不知道如何将其实现为ASP经典编程语言。

1 个答案:

答案 0 :(得分: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%安全的方法。