【问题标题】:How do I implement a simple Captive Portal with `http.server`?如何使用 `http.server` 实现一个简单的 Captive Portal?
【发布时间】:2017-10-06 13:23:15
【问题描述】:

我想提供一个 Captive Portal - 页面会提示用户在开始使用我的 Raspberry 上的 http.server 从我的无线网络(通过 WiFi)浏览网页之前同意某些条款运行最新版本 Raspbian 的 Pi。

我正在运行 http.server(Python3 附带),并且在 Pi 上本地有一个网页 portal.html。这是我希望用户在连接到我的 Pi 时被重定向到的页面。假设该页面的本地IP是192.168.1.5:80/portal.html

我的想法是,当他们连接并接受条款和条件后,我会以某种方式允许他们连接。

我该怎么做?

【问题讨论】:

    标签: python-3.x networking simplehttpserver captivenetwork captiveportal


    【解决方案1】:

    您需要制定相关文件,其中包含所有必要的条款和条件,将条件的接受与特定用户联系起来。您可以实现简单的登录,并将字符串(名称 - ID)链接到布尔值,例如“accepted = true”。如果您不需要存储用户数据,只需重定向yo您的文档以及选中“同意”时,请允许用户连接。

    【讨论】:

      【解决方案2】:

      所以“老式”强制门户(我相信)只会劫持未加密的 HTTP GET 请求并强制浏览器重定向到门户页面。虽然简单,但它也展示了不安全的 HTTP 是多么疯狂。

      现在操作系统针对强制门户实施了更安全的机制。 RFC 7710 详细说明了确切的机制。还有一些特定于操作系统的要求,例如 OS X 要求http://captive.apple.com/hotspotdetect.html 是可访问的。您需要实现所有这些以重定向到您的页面。

      【讨论】:

        猜你喜欢
        • 2013-07-28
        • 1970-01-01
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 2016-07-14
        • 1970-01-01
        相关资源
        最近更新 更多