问题标签 [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.

0 投票
1 回答
435 浏览

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

0 投票
1 回答
4067 浏览

javascript - Javascript window.onload 在 iOS 强制门户/网络中不起作用

我在 jsp 文件的标头中有这段代码。出于某种原因,它在桌面和移动浏览器上运行良好,但在 iOS 强制门户上,只触发了第一个警报。有谁知道为什么?

0 投票
0 回答
169 浏览

ios - 如何在 iOS CNA(Captive Network Assistant)上退出全屏视频

我正在尝试在工作中优化 WiFi Captive Portal 中的 UX,我希望视频最终关闭。

问题是:播放视频的浏览器是 iOS CNA,显然不支持*EndFullScreen() 方法,所以这不是一个可能的解决方案。

我有这段代码可以识别视频何时结束:

0 投票
1 回答
576 浏览

html - HTML5 视频未在 Mac OS X(桌面)CNA(强制网络助手)上显示

我正在建立一个免费 wifi 访问的强制门户。当用户连接时,CNA 会在我的门户加载的屏幕中弹出。

问题: HTML5 视频未在 OS X 桌面中显示。甚至 iPhone 都可以显示它,而台式机则不能。我什至无法在这个邪恶的浏览器中检查任何东西(它可以称为浏览器吗?我不这么认为)。

我的视频代码:

请记住,这个相同的代码在 iOS 上显示视频(但不自动播放......现在这是一个小问题)。

一些屏幕截图*可能会有所帮助。视频应在右栏中播放: CNA 不加载视频 CNA 不加载视频

当我右键单击视频然后单击时会发生什么 当我右键单击视频然后单击“显示控件”时会发生什么

另外,当我右键单击然后单击“在新窗口中打开视频”时,它只显示一个视频播放器,但没有任何显示。显然,播放按钮不能让它工作......

0 投票
1 回答
528 浏览

networking - 登录强制门户后,用户可以访问路由器页面,也可以在 openwrt 中 ssh 到路由器

我有 TP-Link WR841Nv11 路由器,我将它升级到 openwrt 以使用强制门户。我正在使用 coova-chilli 作为强制门户。我用 2 个 ssid 设置路由器,一个供私人使用,另一个它会要求通过强制门户为外部用户登录。

一切正常,但问题是通过强制门户用户登录后可以访问路由器网页并且还可以 ssh。我也想阻止用户访问路由器页面和 ssh。

0 投票
1 回答
879 浏览

angular - Safari 中的 Captive Network Assistant 不支持会话存储

我正在构建一个 Angular 2 应用程序。当用户加入 wifi 网络时,应用程序被引导,他们被重定向到在 Captive Portal 中呈现的应用程序。该应用程序适用于除 Safari for OS X 之外的所有其他浏览器。

我无法对此进行调试,但从研究 OS X 的行为来看,Captive Portal Assistant 似乎启动了一些不支持会话存储的受限浏览器。

https://grpugh.wordpress.com/2014/10/29/an-undocumented-change-to-captive-network-assistant-settings-in-os-x-10-10-yosemite/

这破坏了我的应用程序,因为当名称被引导时,它需要在会话存储中存储标志,然后才能将用户重定向到登录页面。这些标志是登录页面用来确定用户是通过 wifi 重定向还是应用程序 url 进入应用程序的标志。

我该如何解决这个问题?我已经研究并没有找到任何解决我的问题的方法。我们的应用程序基本上从用户尝试访问私有 wifi 网络的角度开始工作,这需要在 Mac 上工作。

0 投票
1 回答
2263 浏览

hotspot - 用户连接到wifi时如何显示页面

当用户连接到我的 wifi 时,我想显示一个本地网页。就像一个强制门户,当用户连接到网络时,他的设备(即安卓操作系统)会自动检测到网络需要用户登录。我知道,我可以为此设置一个强制门户,但是有没有更简单的方法来做到这一点?

0 投票
1 回答
1038 浏览

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 ......)

我如何解决它?

0 投票
1 回答
950 浏览

php - UniFi 外部强制网络门户 - 身份验证时移动 WiFi 断开连接

我在 UniFi 控制器(v5.4.11)上创建了一个外部强制门户,并使用此库成功授权设备:

https://github.com/malle-pietje/UniFi-API-browser

但是,当我的 PHP 代码发送 authorize_guest($mac, $duration) 命令时,相关移动设备的 WiFi 实际上已断开连接。

据我所知,这发生在 Android 和 iOS 上。

这是我正在使用的代码:

0 投票
2 回答
2270 浏览

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

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

我该怎么做呢?