2016-11-15 75 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%安全的方法。