2
我一直在努力研究阻止訪問我們的Rails 3應用程序的正確方法,除了少量的IP地址和幾個IP子網。在Rails 3應用程序中將某些子網的IP列入白名單
在尋找方法時,我發現這個question/answer。建議的代碼如下:
應用控制器
before_filter :protect
def protect
@ips = ['127.0.0.1', '203.123.10.1'] #And so on ...]
if not @ips.include? request.remote_ip
# Check for your subnet stuff here, for example
# if not request.remote_ip.include?('127.0,0')
render :text => "You are unauthorized"
return
end
end
這個工作,所以我改變它重定向到一個靜態頁面,而不僅僅是文字信息。
但是我想要做的是允許從Rails應用服務器的同一個子網上的本地IP訪問。該子網只是192.168.1.0/24
。
什麼是最容易/最乾淨的方式將子網添加到接受的IP?
謝謝,但我得到了以下錯誤:'錯誤消息:NoMethodError:未定義的方法&的; 192.168.1.17;:String' – dannymcc 2012-07-24 20:03:26
這是行絕對正確的嗎? '如果bip&bmask == request.remote_ip&bmask' – dannymcc 2012-07-24 20:04:54
對不起,我沒有將'request.remote_ip'從字符串轉換爲整數。我更新了代碼以進行轉換。 – 2012-07-24 21:24:24