问题标签 [captiveportal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iPhone/Android 不会关闭使用 DNS 实现的 wifi 登录页面
我正在尝试使用Wiki 中提到的 DNS 方法在我现有的公共 wifi 网络上实现一个启动页面/wifi 登录页面,在该方法中我托管了一个自定义 DNS 服务器,它将所有 dns 查找重定向到一个本地地址,其中一个 web 服务器托管,所有用户点击同意之前。
用户点击同意后,我的自定义 DNS 服务器开始返回正确的 ip 以供查找,因此,用户将能够上网。
注意:我们完全理解这绝不会保护我们的网络,甚至会使我们的网络处于危险之中。但这里的目标是在我们的用户面前弹出登录页面。
这种方法实际上适用于 Windows Phone(我测试过的 Windows 8)作为启动页面,甚至在我尝试打开随机网站时在计算机上,它会将我重定向到我的页面,并且在我点击同意后,我可以访问互联网.
当我在 iPhone/Android 上尝试时,一旦我连接到热点,启动页面/wifi 登陆页面就会按预期显示(因为设备正试图通过转到该组页面来验证互联网访问)但是,在我点击同意后,并允许上网,iPhone 和 Android 的闪屏都不会消失。我必须强制 iphone “在没有网络的情况下使用这个 wifi” 退出。
我想知道是否有可以在页面中调用的特殊(javascript?)方法,或者我需要发送到设备的一些包?我注意到在 iOS 上,如果我单击指向 App Store 的链接,启动页面就会消失而不会断开与网络的连接,所以,我想我在这里遗漏了一些东西。
例如,在 iOS 设备上单击指向 iOS StackOverflow 应用程序的链接可能是一种解决方法。
现在已经在谷歌上搜索了一个星期,似乎什么都没有出现。
顺便说一句,我正在使用模块 dnsd 在节点 js 上构建我的自定义 dns 服务器。
=-=-=
=-=-=-=-= 编辑 =-=-=-=-=-=
我还在 GitHub 上上传了我的代码演示: https ://github.com/kylelam/dnsd_wifi
要对其进行测试,请在本地网络中运行它 (sudo node demo.js)。然后,将手机的 dns 更改为机器的 IP。断开手机与 wifi 的连接,然后重新连接。(在 iOS 上,您可能需要详细说明,并启用自动登录和自动加入,或者如果您不能,只需重新启动。)
*note1:服务器需要在 53 和 80 端口上运行,所以需要 sudo。
*note2:请不要嘲笑我的代码,我对此很陌生。但请务必指出。
*note3: 你需要 npm 安装这些包: os, express, dns, dnsd
javascript - Javascript window.onload 在 iOS 强制门户/网络中不起作用
我在 jsp 文件的标头中有这段代码。出于某种原因,它在桌面和移动浏览器上运行良好,但在 iOS 强制门户上,只触发了第一个警报。有谁知道为什么?
ios - 如何在 iOS CNA(Captive Network Assistant)上退出全屏视频
我正在尝试在工作中优化 WiFi Captive Portal 中的 UX,我希望视频最终关闭。
问题是:播放视频的浏览器是 iOS CNA,显然不支持*EndFullScreen() 方法,所以这不是一个可能的解决方案。
我有这段代码可以识别视频何时结束:
html - HTML5 视频未在 Mac OS X(桌面)CNA(强制网络助手)上显示
networking - 登录强制门户后,用户可以访问路由器页面,也可以在 openwrt 中 ssh 到路由器
我有 TP-Link WR841Nv11 路由器,我将它升级到 openwrt 以使用强制门户。我正在使用 coova-chilli 作为强制门户。我用 2 个 ssid 设置路由器,一个供私人使用,另一个它会要求通过强制门户为外部用户登录。
一切正常,但问题是通过强制门户用户登录后可以访问路由器网页并且还可以 ssh。我也想阻止用户访问路由器页面和 ssh。
angular - Safari 中的 Captive Network Assistant 不支持会话存储
我正在构建一个 Angular 2 应用程序。当用户加入 wifi 网络时,应用程序被引导,他们被重定向到在 Captive Portal 中呈现的应用程序。该应用程序适用于除 Safari for OS X 之外的所有其他浏览器。
我无法对此进行调试,但从研究 OS X 的行为来看,Captive Portal Assistant 似乎启动了一些不支持会话存储的受限浏览器。
这破坏了我的应用程序,因为当名称被引导时,它需要在会话存储中存储标志,然后才能将用户重定向到登录页面。这些标志是登录页面用来确定用户是通过 wifi 重定向还是应用程序 url 进入应用程序的标志。
我该如何解决这个问题?我已经研究并没有找到任何解决我的问题的方法。我们的应用程序基本上从用户尝试访问私有 wifi 网络的角度开始工作,这需要在 Mac 上工作。
hotspot - 用户连接到wifi时如何显示页面
当用户连接到我的 wifi 时,我想显示一个本地网页。就像一个强制门户,当用户连接到网络时,他的设备(即安卓操作系统)会自动检测到网络需要用户登录。我知道,我可以为此设置一个强制门户,但是有没有更简单的方法来做到这一点?
ios - iOS 10.3 上的 iOS CNA 无法在 Safari 中打开链接
我有一个路由器,可以在强制门户上打开 Apple CNA,并带有一个接受条款和条件的按钮
当用户接受条款时,路由器解锁连接并将用户重定向到带有链接的欢迎页面。
在 iOS 10.2.1 上,当我单击链接(它是绝对链接“ https://mydomain.it/mypage ”)时,CNA 会自动关闭,并使用该链接打开 Safari。
在 iOS 10.3.1 上,链接在 CNA 内打开,具有案例的所有限制(有限的 js 支持,没有本地存储,ecc ......)
我如何解决它?
php - UniFi 外部强制网络门户 - 身份验证时移动 WiFi 断开连接
我在 UniFi 控制器(v5.4.11)上创建了一个外部强制门户,并使用此库成功授权设备:
https://github.com/malle-pietje/UniFi-API-browser
但是,当我的 PHP 代码发送 authorize_guest($mac, $duration) 命令时,相关移动设备的 WiFi 实际上已断开连接。
据我所知,这发生在 Android 和 iOS 上。
这是我正在使用的代码:
python-3.x - 如何使用 `http.server` 实现一个简单的 Captive Portal?
我想提供一个Captive Portalhttp.server
-在运行最新版本的 Raspbian 的 Raspberry Pi 上使用我的无线网络(通过 WiFi)开始浏览网页之前提示用户同意某些条款的页面。
我已经http.server
(与 Python3 一起)运行并portal.html
在 Pi 上本地有一个网页。这是我希望用户在连接到我的 Pi 时被重定向到的页面。假设该页面的本地 IP 是192.168.1.5:80/portal.html
我的想法是,当他们连接并接受条款和条件时,我会以某种方式允许他们连接。
我该怎么做呢?