kah*_*aho 9 dns node.js ios express captiveportal
我正在尝试在我现有的公共wifi网络上实现启动页面/ wifi登陆页面,使用Wiki中提到的DNS方法,我在其中托管自定义DNS服务器,将所有dns查找重定向到Web服务器的本地地址托管,为所有用户点击同意之前.
用户点击同意后,我的自定义DNS服务器开始返回正确的IP以进行查找,因此,用户将能够上线.
注意:我们完全理解这不会保护我们的网络,甚至使我们的网络面临风险.但这里的目标只是在我们的用户面前弹出登陆页面.
这种方法实际上适用于Windows Phone(我测试的Windows 8)作为启动页面,甚至在我尝试打开随机网站的计算机上,它将我重定向到我的页面,在我同意后,我可以上网.
当我在iPhone/Android上试用它时,一旦我连接到热点,启动页面/ wifi登陆页面就会出现预期(因为设备试图通过转到页面集来验证互联网访问)但是,在我点击同意之后,并允许互联网访问,iPhone和Android闪屏都不会消失.我必须强迫iphone"使用这个没有网络的wifi"退出.
我想知道是否有一个我可以在页面中调用的特殊(javascript?)方法,或者我需要发送给设备的一些软件包?我注意到在iOS上,如果我点击指向App Store的链接,那么启动页面会在不断开网络的情况下消失,所以,我想我在这里遗漏了一些东西.
例如,单击iOS设备上iOS StackOverflow App的链接可以解决此问题.
现在谷歌搜索了一个星期,似乎没有任何东西出现.
顺便说一句,我在节点js上使用模块dnsd构建我的自定义dns服务器.
= - = - =
= - = - = - = - = edit = - = - = - = - = - =
我还在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
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |