PHP/Ruby Captive Portal первый домен кажется кэшированным
Я создал портал с 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`;
Что я пробовал:
Подержанные синатры одиноки с худыми. Визуализируйте шаблон с помощью erb. Когда пользователь перезагружается после аутентификации, он получает отказ от ответственности при посещении исходного домена. При посещении другого они не получают страницу отказа от ответственности.
Настройте apache2 с помощью php, переписав все в php. добавлены метатеги для предотвращения кеширования в браузере, но результат тот же. оригинальный домен перенаправляет на отказ от ответственности всегда, но другие сайты в порядке.
Чего я хочу достичь
Пользователи должны нажать принять на отказ от ответственности, прежде чем они смогут использовать WIFI.
Перезагрузка apache2 или перезапуск Sinatra решают эту проблему, но это не является правильным решением для низкоуровневой платы Alix.
1 ответ
Обнаружил, что после вставки MAC-адреса в iptables мне нужно было использовать conntrack.
/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\"); }"
http://aryo.info/labs/captive-portal-using-php-and-iptables.html