检测wifi是否需要portal验证 公共场所wifi验证

何为wifi portal验证?

平时在商场,咖啡厅,银行等公共场所,我们手机提示:有可用WLAN。这些WIFI可以直接连接,不需要密码,但需要我们手动在手机网页上进行验证,一般是输入一个手机号码,点击获取验证码或密码,服务器会发一条短信验证码或密码到手机上,将其输入网页的密码框,登陆即可使用免费wifi。这个验证的网页称为portal(翻译:门,入门,表示要使用这个公共wifi,就要先“进入”这个门,也就是验证的意思)。

案例

有些手机监听到用户连接wifi时,如果这个wifi是需要进行portal验证的话,就会自动弹出一个界面(或启动一个浏览器),这个界面里面有一个验证网页,给用户进行wifi验证,这样就不用用户手动去打开浏览器进行验证,提高用户体验。但有些手机就偏偏不会自动弹出这个验证页面。那么,如果你公司开发一款app,需要自动弹出这个wifi portal验证界面(针对于某些不会弹出验证界面的系统),那怎么办呢?

目标

我们的目标很明确:就是要在wifi连接后,判断wifi是否需要portal验证?如果需要portal验证,那么我们直接启动一个intent去发起随意一个网页的访问,如:http://www.baidu.com。此时,portal服务器会检测到有新的用户连接,就会劫持用户的wifi路由,强制去访问wifi的portal验证网页(类似过滤器),用户只要在这个网页上完成验证,即可使用wifi。

实现

下面的代码块是抽取于android源码里的一个方法,该方法就是检测当前手机连接的wifi是否需要进行portal验证。一般这个方法都是放在wifi连接状态发生变化的广播接收器里面。

private boolean isWifiSetPortal() {
        final String mWalledGardenUrl = "http://clients3.google.com/generate_204";
        final int WALLED_GARDEN_SOCKET_TIMEOUT_MS = 10000;

        HttpURLConnection urlConnection = null;
        try {
            URL url = new URL(mWalledGardenUrl);
            urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setInstanceFollowRedirects(false);
            urlConnection.setConnectTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS);
            urlConnection.setReadTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS);
            urlConnection.setUseCaches(false);
            urlConnection.getInputStream();
            return urlConnection.getResponseCode() != 204;
        } catch (IOException e) {
            //e.printStackTrace();
            return false;
        } finally {
            if (urlConnection != null) {
                urlConnection.disconnect();
            }
        }
    }

这个实现很简单,谷歌会进行一个http的访问,如果返回码为204,就证明手机当前连接的wifi,是不需要进行portal验证的。否则,则需要进行portal验证。

至于为什么会是204,这个暂时没研究,知道的朋友可以留言告诉我一下。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 12:15:56

检测wifi是否需要portal验证 公共场所wifi验证的相关文章

检測wifi是否须要portal验证 公共场所wifi验证

何为wifi portal验证? 平时在商场,咖啡厅,银行等公共场所.我们手机提示:有可用WLAN.这些WIFI能够直接连接,不须要password,但须要我们手动在手机网页上进行验证,通常是输入一个手机号码,点击获取验证码或password.server会发一条短信验证码或password到手机上,将其输入网页的password框,登陆就可以使用免费wifi.这个验证的网页称为portal(翻译:门.入门,表示要使用这个公共wifi,就要先"进入"这个门,也就是验证的意思). 案例

WiFi认证是如何保证企业WiFi的安全?

无线网络是实现移动互联网的载体,企业WiFi的安全性非常重要.说它小是占用企业的办公资源,影响办公效率;它是企业的信息安全.那么,WiFi认证如何确保企业WiFi的安全性呢?以下是对每个人的一般性解释. 首先,为了保证企业WiFi的安全性,具有wifi认证功能的WiFi安全管家启用了网络接入认证机制.众所周知,要连接到WiFi,您必须先找到WiFi信号,然后输入密码,然后才能访问无线网络.时讯无线 WiFi认证系统在传统加密之上引入了认证机制.客户端需要访问身份验证服务器以启动身份验证请求.只有

千万别把WIFI玩坏了!关于WIFI的新鲜玩法和商业模式探讨

使用WIFI作为无线上网接入,也许大家都比较习以为常的.但是你们知道吗,其实WIFI还有很多种玩法:基于WIFI的身份识别,WIFI感知,WIFI Direct等等.今天我们会着重介绍一种WIFI的有意思的玩法:WIFI感知. 在国外,WIFI感知的初创企业有著名的ECULID,而国内最著名的就是芝麻科技. 本文是一个在WIFI感知领域从业一段时间的一个朋友对WIFI感知这种新玩法的简单理解,希望能对大家理解这种新玩法有一些帮助. 利益相关:组建了一个创业团队,产品成型,并且投入了商用已经接近两

您的wifi安全吗?----记一次wifi 安全测试

1.闲来无事,搜索了一下附近的wifi,用到的工具是WiFi***.点击一键查询***,居然还真有二个wifi用的是弱口令.那就随便连一个.我连的wifi名为 25904 的这个wifi. 2.连接到这个弱口令的wifi后,接下来要做的是看看这个wifi下面有哪些电脑或终端在连接.接下来要用到的工具是安卓版的渗透神器----dsploit 这个工具了, 需要的朋友自己去度娘或谷哥搜索一下就有了. 3.如下图所示.第一个是路由器地址,第二个则为连接的终端,包括了这个终端的IP以及MAC地址.第三个

Android WiFi开发教程(一)——WiFi热点的创建与关闭

相对于BlueTooth,WiFi是当今使用最广的一种无线网络传输技术, 几乎所有智能手机.平板电脑和笔记本电脑都支持Wi-Fi上网.因此,掌握基本的WiFI开发技术是非常必要的.本教程将围绕一个小Demo初步与大家一同探讨WiFi开发. 先上效果图   Demo功能比较简单,四个按钮.两个文本和一个列表.功能主要有创建WiFi热点,关闭WiFi热点,搜索WiFi,连接WiFi,数据通讯.源码会在教程结尾提供. 本章节主要介绍WiFi热点的创建和关闭 需要用到的权限 <uses-permissi

【Wifi 安全】使用BT5破解wifi

破解无线网络的WPA/WPA2-PSK的密码比起wep难很多, 越来越多的人放弃WEP加密方式而是用更安全的WPA和WPA2加密家庭wifi. 许多人安装BackTrack也是为了要破解密码, 然而破解WPA/WPA2需要的不只是时间, 还需要运气. 本站不提倡破解无线网络密码, 破解他人AP的密码是违法的行为. 下面的教程仅作学习参考! 首先下载BT5的光盘候用BT5开机, 进入桌面环境. 首先先修改网卡的MAC地址, 下面例子的网卡名称为wlan0: airmon-ng stop wlan0

免费WiFi初体验——个小白的WiFi旅程

说来羞愧,真正接触到WiFi还是在毕业后,此前自己封闭在一个人的世界,再加上外在学校的包围,我还成了个"山里"的孩子. 去年毕业了,也算是个90后,可自觉得心态过于成熟.了解外界太少,整一个"别扭"二字概括了. 大小长于乡下.中学住宿舍了,也是漏雨屋,大学好些了,能自由选择装个宽带啥的.总算解了我多年对网络的相思之苦. 从无到有,倒是这样也就满足了. 就这样直到毕业,我也是满足着. 毕业后,我也换了使用四年的直板机.换了智能机,真是后知后觉,这才直到WiFi的优点.

外面的wifi很精彩,外面的wifi很不安

星期一果然很忙,看到安卓漏洞还是午休的时候,可能我们都习惯了,我们的信息安全一向难以得到保障.对于我来说,可能都无所谓了.但是作为用户之一,我们也不能太安分,该需要的保障还是得维护. 本来,我们就知道wifi向来不是件安全的事儿,更不用说使用外面的wifi.关于wifi上网的负面新闻不断曝出,现在给我的感觉就是,如果我们在在一个环境下wifi上网,那么那块空气重无处不充斥着我们的隐私信息,给人一种窒息和被人肉的错觉. 这样想来,我都更不愿在外wifi了,还是在家使用无线网或者直接宽带也行. 可是

360随身wifi怎样购买?360随身wifi怎样预约?

---恢复内容开始--- 360随身wifi怎样购买 想要购买360随身Wifi,可以登录360随身Wifi的官网wifi.360.cn,或者直接登陆京东商城进行购买,售价为19.9元,分黑.白两色. 针对360随身Wifi怎样购买的问题,只要登陆官网或者京东商城即可购买.360随身Wifi是360公司近期推出的一款硬件产品.这款产品的作用就是在没有在没有WiFi的环境下,但电脑可以通过有线上网的时候,把"360随身WiFi"连接到电脑,不用做任何设置即可利用电脑的有线网络发射无线Wi