基于IP地址限制对Rails应用程序的访问

时间:2015-05-13 14:52:44

标签: ruby-on-rails ruby network-programming

我想创建一个只能从特定网络连接访问的应用程序。更清楚的是,这将是一个出勤申请。用户只能从特定的网络连接登记。如果他们与其他网络连接,他们无法办理登机手续。 我怎么能在Ruby on Rails中做到这一点。请给我一些想法。其实我需要知道如何检测特定的网络连接?

提前致谢。

1 个答案:

答案 0 :(得分:1)

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 添加此内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.4.5.css">
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/jquery-2.1.3.js"></script>
    <script type="text/javascript" src="js/jquery.mobile-1.4.5.js"></script>
    <title>LocoQR</title>
</head>
<body>
<div data-role="page">

    <div data-role="header">
        <h1>LocoQR</h1>
        <a href="#" data-rel="back" class="ui-btn ui-icon-arrow-l ui-btn-icon-notext ui-corner-all"></a>
    </div><!-- /header -->

    <div role="main" class="ui-content">
        <form>
            <fieldset data-role="controlgroup">
                <legend>Select videos to remove:</legend>
                <input type="checkbox" name="checkbox-v-2a" id="checkbox-v-2a">
                <label for="checkbox-v-2a">One</label>
                <input type="checkbox" name="checkbox-v-2b" id="checkbox-v-2b">
                <label for="checkbox-v-2b">Two</label>
                <input type="checkbox" name="checkbox-v-2c" id="checkbox-v-2c">
                <label for="checkbox-v-2c">Three</label>
            </fieldset>
        </form>
    </div><!-- /content -->

</div><!-- /page -->
</body>
</html>

原因是您必须将我在此示例中使用的IP网络替换为您想要访问的IP网络。