搜尋

首頁  >  問答  >  主體

ruby - rails限制多個IP存取的方法?

對某一個action的IP的限製方式是,在routes.rb中:

  constraints(:ip => Settings.ip.allow) do
     post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
  end

在settings.yml中:

  ip:
    allow: '127.0.0.1'

這是可以的.

但是想對多個IP允許訪問,在settings.yml中如下:

  ip:
    allow: '/127.0.0.1|127.0.0.2/'

卻不行。哪裏不對呢?

黄舟黄舟2778 天前629

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-04-21 11:00:01

    因為 Settings.ip.allow 總是回傳的是 String,但其實第二種情況下你需要的是一個 RegExp,所以無效。可以試著這麼改:

    config/routes.rb:

    constraints(:ip => %r{#{Settings.ip.allow}}) do
     post '/somecontroller/callback', to: 'somecontroller#callback' , as: 'somecontroller_callback'
    end
    

    config/settings.rb

    ip:
      allow: '127.0.0.1|127.0.0.2'
    

    回覆
    0
  • 取消回覆