我的项目是制作一个 Wifi 固定接入点。 即一旦你连接了这个wifi点,你就不能上网,只能浏览本地网站。我实现了它,当您针对所有可能的端口访问任何域、任何 IP 时,客户端将重定向到本地网站。有用。是的。
除非我在某个地方错了,否则它是 100% 俘虏。没有IP转发,没有互联网访问。
但是,操作系统并不将我视为俘虏门户。我测试过的操作系统(Mac OS X、iOS、Android)似乎并未将其视为俘虏。因此,我没有收到弹出窗口/闪屏/通知。 ( Apple CNA :我已获悉有关我配置的重定向的信息,Assistant 应显示)。
有人在这方面拥有大量帮助吗?我是否遗漏/误解了一些被检测为围墙花园的东西。
感谢您提供任何帮助。
编辑 ___________ 在控制台中,这是当 Mac OS X 加入 Wifi Spot 时我得到的一堆行:
UserEventAgent[40]: Captive: CNPluginHandler en1: Authenticated
UserEventAgent[40]: Captive: [CNInfoNetworkActive:1709] en1: SSID 'MyWifiTest2' 未使接口成为主要接口(无缓存条目)
UserEventAgent[40]: Captive: CNPluginHandler en1: Evaluating
UserEventAgent[40]: Captive: en1: 未探测“MyWifiTest”(缓存指示未捕获)
一个类似的问题@ https://discussions.apple.com/thread/6251349: “所以,我们看到缓存不再是问题,但探针出现问题(即,当 Captive Network Assistant 请求 Apple 成功网页时),并且在它的错误状态下,它假设我们在线,而我们没有。这似乎也有问题。有点有趣的是,一旦计算机假设它在线,我所有的小后台进程就开始发出请求,而我get 可以在这些进程抛出的错误中看到强制门户登录页面标记的转储。”
在Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plist ProbeURL 是:
http://captive.apple.com/hotspot-detect.html
Run Code Online (Sandbox Code Playgroud) 我的服务器上使用了一个简单的重定向,并带有 iptables 规则:
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 13.37.42.1:80
$ iptables -t nat -A POSTROUTING -j MASQUERADE
我不明白第二行(化妆舞会)的用处。为什么/为什么它在这个例子中有用?
编辑:为什么 - 不是理论上的,而是现实中的 - 你会在这样的例子中使用它吗?
谢谢