2015-05-13 6 views
1

Я хочу создать приложение, которое будет доступно только из определенного сетевого подключения. Более ясно, что это будет приложение для участия. Пользователи могут проверять только определенное сетевое подключение. Если они связаны с другой сетью, они не могут зарегистрироваться. Как это сделать в Ruby on Rails. Пожалуйста, дайте мне некоторое представление. На самом деле мне нужно знать, как определить конкретное сетевое соединение?Ограничение доступа к Rails-приложениям на основе IP-адреса

Заранее спасибо.

ответ

1

В вашем ApplicationController добавить следующее:

before_filter :block_foreign_hosts 

def whitelisted?(ip) 
    return true if [123.43.65.1, 123.43.65.77].include?(ip) 
    false 
end 

def block_foreign_hosts 
    return false if whitelisted?(request.remote_ip) 
    redirect_to "https://www.google.com" unless request.remote_ip.start_with?("123.456.789") 
end 

причины вы должны заменить IP-сети, я использовал в этом примере с одной вы хотите иметь доступ.

+0

Привет, davidb, спасибо за ваш ответ. Это решило мою проблему. Теперь еще одна вещь. Если я хочу сделать белый список IP-адресов, которые я хочу разрешить, что я могу сделать? – Muktadir

+0

Я добавил белый список в свой код причины, вам нужно заменить '[123.43.65.1, 123.43.65.77]' на ваш белый список. – davidb

+0

Большое вам спасибо. : D Я могу сохранить белый IP-адрес в базе данных и проверить его на метод whitelisted? (Ip). я прав? – Muktadir

Смежные вопросы