您可以使用URL重寫器,如IIRF來做到這一點。插入規則以返回404或任何你喜歡的來自不允許的IP的請求。這將適用於任何Web應用程序平臺:PHP,Java,ASP.NET,RoR,靜態html或圖像,無論如何。
自述給出這樣一個例子:
RewriteCond %{REMOTE_ADDR} ^(?!127.0.0.1)([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})(.*)$
RewriteRule ^/(?!redirected.htm)(.*)$ /redirected.htm
和它說:
上述條件評估爲真時,服務器變量「REMOTE_ADDR」的計算結果爲,其是IP地址NOT 127.0.0.1。 ?!是一個零寬度的負向預測,並且正則表達式末尾的(。*)用於捕獲有時出現在該變量中的垃圾。條件之後的規則說,對於任何不是「redirected.htm」的URL,都將其映射到「redirected.htm」。這可以防止無盡的重寫。 (你也可以用[L]修飾符標誌防止無限重寫)。
這RewriteCond + RewriteRule重定向任何外部發起的請求到IIS服務器。對於一組特定的白名單IP,您可以做類似的事情。
IIRF是用C語言編寫的ISAPI過濾器,在哲學上與mod_rewrite類似。它適用於IIS5,6或7。您需要管理員權限才能設置它。你不需要「編程」,但是有一個與.htaccess語法相似的ini文件(專門用於mod_rewrite規則)。
IIRF是免費且開源的。