gpt4 book ai didi

node.js - 避免强制门户

转载 作者:行者123 更新时间:2023-12-02 04:42:48 24 4
gpt4 key购买 nike

我正在尝试制作一个没有互联网连接的设备,它将其 wifi 的任何连接重定向到一个独特的页面,如盗版盒。我使用 NodeJS 服务器和 dnsmasq 将所有连接重定向到服务器。这工作得很好,但是当我尝试连接 Android 或 iOS 智能手机时,它检测到它是一个强制门户,并且页面显示但在身份验证弹出窗口中。

我看到设备尝试连接到某些 IP,如果没有响应,则认为连接是通过强制门户进行的。

有什么办法可以避免吗?

非常感谢!

编辑:我找到了要“白名单”的页面列表:

Android Captive Portal Detection:
Domain names to white list:
clients3.google.com

iOS for iPhone:
iPhone is more complicated, since it uses many different domain names, maybe for load balancing. It also changed its strategy using different domain names through different O.S. versions.
iOS 6:
Domain names to white list:
gsp1.apple.com
*.akamaitechnologies.com
www.apple.com
apple.com

iOS 7:
Domain names to white list:
www.appleiphonecell.com
*.apple.com
www.itools.info
www.ibook.info
www.airport.us
www.thinkdifferent.us
*.apple.com.edgekey.net
*.akamaiedge.net
*.akamaitechnologies.com


Windows Desktop O.S.
Domain names to white list:
ipv6.msftncsi.com
ipv6.msftncsi.com.edgesuite.net
www.msftncsi.com
www.msftncsi.com.edgesuite.net
teredo.ipv6.microsoft.com
teredo.ipv6.microsoft.com.nsatc.net

但由于我的设备并未真正连接到互联网,我该如何发送这些页面?

最佳答案

它在弹出窗口中显示重定向的页面,因为设备发出的请求(http 探测)以确定它是否在强制门户后面,没有返回预期的成功消息。

另请参阅:https://serverfault.com/questions/679393/captive-portal-popups-the-definitive-guide/

如果您想避免出现弹出窗口,但又不想让 http 探测通过,那么您必须返回 http 探测所期望的相同成功消息 - 这会愚弄它以为它不在后面强制门户。

如果您不返回 http 探测器试图获取的成功消息,它会认为它位于强制门户之后。有时,成功消息只是“HTTP 200 OK”。

因此,要愚弄它,您需要记录来自所有设备的 http 探测器所生成的 URL。将这些结果存储在执行重定向的路由器上。在封闭网络内,每当探测到其中一个 URL 时,返回预期的成功消息。该设备会认为它具有完全的互联网访问权限,并且不会弹出强制门户登录窗口。

如果您想让强制门户登录页面出现在设备上的强制门户身份验证弹出窗口中,只需将所有 HTTP 请求重定向到登录页面即可。设备登录后,所有来自 http 探测的 URL 都需要返回预期的成功消息,否则它将继续假定设备未成功登录到强制门户,并将继续显示身份验证弹出窗口 -上。

关于node.js - 避免强制门户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36067643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com