我正在尝试制作一个没有互联网连接的设备,它将任何连接到其 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
但是由于我的设备没有真正连接到互联网,我该如何发送这些页面?