【问题标题】:PHP/Ruby captive portal first domain seems cachedPHP/Ruby 强制门户第一个域似乎已缓存
【发布时间】:2015-02-14 19:20:06
【问题描述】:

我用 iptables 创建了一个强制门户

我使用很多人似乎都在使用的东西:用户可以请求 DNS,数据包标记为 99。99 表示用户无法访问互联网。

当用户访问页面时访问例如堆栈溢出。用户获得免责声明。他/她点击确定。发生的事情是服务器执行以下规则:

`sudo /sbin/iptables -t mangle -I captivePortal 1 -m mac --mac-source {$mac} -j RETURN`;
    `sudo /sbin/iptables -t mangle -I captivePortal 1 -s {$_SERVER['REMOTE_ADDR']} -j RETURN`;

我尝试过的:

用过的 sinatra 单用瘦身。使用 erb 渲染模板。当用户在验证后重新加载时,他们会在访问初始域时获得免责声明。当访问另一个他们没有得到免责声明页面。

用php设置apache2,全部用php重写。添加了元标记以防止在浏览器中缓存但结果相同。原始域总是重定向到免责声明,但其他网站还可以。

我想要达到的目标

用户需要在免责声明中点击接受才能使用WIFI。

编辑:重新加载 apache2 确实可以解决这个问题。

【问题讨论】:

    标签: php ruby apache iptables


    【解决方案1】:

    使用 rmtrack 如下所述:http://www.andybev.com/index.php/Using_iptables_and_PHP_to_create_a_captive_portal

    /usr/sbin/conntrack -L \
        |grep $1 \
        |grep ESTAB \
        |grep 'dport=80' \
        |awk \
            "{ system(\"conntrack -D --orig-src $1 --orig-dst \" \
                substr(\$6,5) \" -p tcp --orig-port-src \" substr(\$7,7) \" \
                --orig-port-dst 80\"); }"
    

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 2023-04-01
      • 1970-01-01
      • 2017-11-03
      • 2021-12-03
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2011-02-02
      相关资源
      最近更新 更多