问题标签 [captivenetwork]

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 投票
0 回答
47 浏览

javascript - 带有 facebook like 和其他功能的按钮

我正在构建一个托管在我的服务器上的站点,该站点用作本地计算机网络的强制门户。在我的索引页面(连接到网络后他们被重定向到的页面)我有一个按钮,它通过存储他们的 mac 地址并将他们重定向到 facebook likebox 页面并允许他们谷歌(允许他们自由冲浪)来“验证”用户。我的问题是,我可以实现“允许访问”按钮与 facebook 类似按钮的组合,这样我就可以通过消除 2 个单独的按钮并只使用一个来存储他们的 mac 并同时获得一个喜欢...

0 投票
2 回答
4184 浏览

android - 区分http移动浏览器和移动应用请求

我读了一些这样的帖子这个其他一些没有回应。但是,我似乎在这里找到了 IOS 设备的解决方案。

我需要拒绝来自任何设备的任何应用程序的任何 http 请求,并且只处理来自网络浏览器的请求,所以主要问题是:

有一种确定的方法来判断 HTTP 请求是来自移动应用程序还是来自 Web 浏览器?

谢谢

示例:我从手机/平板电脑接收所有 http 请求(我正在开发 wifi 热点后面的应用程序),所以我处理来自 Facebook 应用程序、Whatsup 应用程序和浏览器的请求。我必须拒绝来自 Facebook 和 Whatsup 的请求,只处理来自浏览器的请求。应用程序用户代理似乎与本机设备浏览器相同。

0 投票
2 回答
13080 浏览

router - 强制门户 - Chillispot | OpenWrt vs DD-wrt

我一直在尝试使用 DD-wrt ​​和 Open-wrt ​​以及我自己的 radius 服务器来配置强制门户,并且我还尝试使用 CSP 页面 ( http://worldspot.net ) 来配置它们。

DD-wrt

我的第一次尝试是使用 Web 界面使用 TP-LINK WR841N (v7.) 和 DD-wrt。在 dd-wrt ​​网页界面中有一个选项Services -> HotsPot -> ChilliSpot。在这里,我尝试了两种配置,使用我自己的服务器数据,还尝试了 WorldSpot 数据,两种情况下我的问题都是一样的:

当我在路由器上启用 Chillispot 时,我没有分配 IP,这意味着我无法连接到 wifi/lan。看来问题显然出在路由器上,就像 Chillispot 配置不起作用,或者更改没有“应用”

开放式

经过几个小时试图使工作 dd-wrt ​​我认为也许使用 open-wrt ​​更容易配置,在这里我发现了另一个问题。将TP-LINK更新为Open-wrt后,我发现无法通过WEB访问路由器,所以我必须通过telnet和ssh连接来安装一些软件包并进行一些配置。

我尝试为 web gui 安装“luci”包,但发现有一些错误: - 首先它没有找到包,我必须更改/etc/opkg.conf文件 - 下载包并尝试访问网络后,我得到了错误uci_load: not found - 一旦我修复了 uci 包问题,我启用了 uhttpd 并启动它,但是当我尝试通过网络连接时,我收到另一个错误“CG​​I 没有收到任何响应”

问题

  • 比我更有经验的人可以指出这些软件中的哪一个更好地拥有一个现场系统/强制门户?

  • dd-wrt​​情况下,chilispot 的配置可能未应用于路由器配置?

  • 对于open-wrt,任何人的 Web 界面都有相同的错误吗?

  • 我一直在阅读,似乎可以通过 配置 ChilliSpot SSH,但是我发现的教程不是很有帮助,任何人都可以为我指出一个很好的教程吗?

我也有一个D-Link dir-615 H2,但它似乎与 TP-LINK 相比,与 open-wrt ​​和 dd-wrt ​​的兼容性较差。

我会很感激任何可以让我朝着好的方向发展的信息,谢谢!

0 投票
0 回答
584 浏览

android - 在 Android 上构建强制门户是否可行?

制作一个像强制门户一样工作的应用程序是否可行?这样用户就可以创建一个 Wifi 热点,任何其他连接到它的用户都将被重定向到登录页面。

我已经尝试过的:

我用以下内容制作了一个应用程序:

  • 无线热点

  • 获取已连接用户列表

  • 做了一个登录页面

  • 在 Android 设备上制作了一个服务器来托管此网页。

如何将已连接的用户重定向到此网页,或者我是否可以控制已连接的用户可以访问的内容?

这需要Root访问权限吗?还是应该使用 NDK 进行较低级别的访问?

0 投票
0 回答
400 浏览

iptables - iOS 8 上没有出现浏览器弹出窗口

我想在 Ubuntu 机器上构建一个 Captive 门户和一个接入点,并将每个传入流量重定向到 localhost。我首先将每个端口上的所有传入 tcp 流量重定向到通过 Apache Web 服务器在本地提供的简单登录页面。然后我丢弃了所有转发的数据包。这一切都通过 iptables 实现,如下所示。

当 iPhone 等客户端连接到接入点,打开 safari 浏览器并输入任何 URL 时,它会成功重定向到登录页面(但不是地址栏中的任何 google 搜索)

我感到震惊的地方是当它连接到我的接入点时,它会强制从 iOS 设备弹出一个自动浏览器。我知道它会尝试 ping apple.com 和其他一些人,例如www.apple.com/library/test/success.html连接成功响应,如果没有所需的响应,它会打开一个微型弹出式浏览器。但是我已经阻止了所有流量并重定向到登录页面(强制门户)。

我认为我出错的地方可能是我不应该阻止所有的 tcp 端口,只有 80 和 443 之类的端口,也许我应该阻止一些 UDP 流量。我的登录页面中是否还有一些我应该更改的内容。我在某处读到,iOS 仅在从重定向的 URL 获得 wispr XML 响应时才会弹出浏览器。

在这方面的任何帮助都是有益的。我保证一旦完成,我会写一篇详细的博客文章。

0 投票
2 回答
1222 浏览

embedded - 可以接受强制门户网站条款的嵌入式 wifi 设备?

我正在为客户构建一个物联网解决方案,网络管理员坚持认为设备只能通过访客网络连接,该网络有一个强制门户,其服务条款必须通过按下 UI 按钮接受,然后才能获得外部互联网访问权限. 到目前为止,我看过的大多数物联网解决方案(电动小鬼、Spark 核心)都明确声明它们无法连接到强制门户。我见过其他用于自动与强制门户交互的高级代码,但我还没有找到允许嵌入式 wifi 设备(如 CC3000)自动接受强制门户上的条款的解决方案。

有没有人见过或为 CC3000 之类的东西构建了一个自定义 wifi 堆栈,可以识别强制门户并与之交互?是否有另一种在该领域取得成功的嵌入式 wifi 解决方案(可能是 xbee wifi?)?

0 投票
0 回答
245 浏览

ios - CaptiveNetwork 强制弹出窗口显示在我的应用程序中

我正在尝试使用 CaptiveNetwork api 来确定我是否连接到我知道有一个强制门户弹出窗口的特定 wifi...然后我需要强制应用程序显示该弹出窗口如果用户尚未经过身份验证给它。

我看到 CaptiveNetwork Apple 文档,但没有示例。以下功能似乎是票,但我无法让它们工作:CNMarkPortalOnline CNMarkPortalOffline ...如果它们确实有效,我不知道如何让门户在离线时触发。

这是我开始的地方:

最好的,珍妮

0 投票
0 回答
120 浏览

ios8 - 在 iOS8 设备上调用 CNA

我正在开发基于 Raspberry Pi 2 的网络控制器。我有运行良好的 WiFi AP、DHCP 服务器、强制门户(通过 DNSmasq)和 Web 服务器。该装置完全脱机,无法访问互联网。

我现在唯一的问题是用户需要通过运行浏览器并输入随机域来启动交互,以便为他们提供我的内容。

我正在互联网上寻找一种让我的 iPhone 启动强制网络助手的方法,但在 iOS 8 上找不到这样做的方法。

鉴于我的网络处于离线状态,无法访问互联网,我很清楚我的 iPhone 检测到了一个强制门户,因为它可能会 ping 许多网站以确定它的在线状态。为什么它不自动显示我的登录屏幕?

0 投票
0 回答
921 浏览

ios - 在 iPhone 上查找已保存的 WIFI SSID 列表

我了解您可以使用 CaptiveNetwork 接口获取当前连接的 Wi-Fi 网络。我也了解到苹果已经严厉打击网络扫描。我需要的是能够读取手机自动连接的“已存储”SSID 列表。

我试图将 Wi-Fi 网络用作一种位置触发器,当用户连接到他的“家庭”网络时,它会改变功能。使用 CaptiveNetwork,我可以获取当前网络并允许他们保存该名称,但我是否可以获取已保存网络的列表,以便用户可以设置位置,而不必在设置过程中到每个位置?

0 投票
1 回答
1385 浏览

ios - 通过强制门户在 iOS 设备上登录 Facebook

我正在开发一个强制门户实现,它将使用 facebook 对用户进行身份验证。用户必须能够登录 facebook 才能获得身份验证并自由访问互联网。除非用户进行身份验证,否则他们不得自由浏览 facebook(或任何其他网站)。我正在使用javascript sdk。

我在 iOS 设备上遇到了这个流程的问题。iOS 设备在连接到 ssid 时会弹出没有 cookie 和会话的伪浏览器。在此页面上,用户可以单击“通过 Facebook 连接”。这将打开 oauth 登录对话框。以下是如何实现的代码片段: document.location = " https://www.facebook.com/dialog/oauth?client_id= " + WF_FB_APP_ID + "&response_type=token&scope=public_profile,email,user_birthday&redirect_uri=" + encodeURIComponent(文件.location.href);

当用户输入电子邮件和密码而不是验证用户身份时,facebook 返回一些错误代码:200、错误描述“权限错误”和错误原因“用户被拒绝”,并重定向到用户需要再次输入凭据的 safari。此时,输入相同的凭据可以正常工作,并且用户可以访问 Internet。

我想知道为什么信用第一次不起作用以及为什么重定向到 safari。Andriod 和 windows 设备没有这个问题,因为用户需要打开浏览器并且通过 facebook 登录过程在浏览器中可以正常工作。

有什么我可以尝试的建议吗?我在云中使用 Meraki AP,并将所有可能的 facebook 域放在围墙花园条目中。我试过用谷歌搜索这种情况,但无济于事。任何尝试的帮助或建议将不胜感激。