学校Android客户端共享上网的原理

问题描述:

在宿舍使用无线路由器的情况下,使用Android官方登陆校园网时,每个人必须登陆自己的账号才能上网,而使用非官方版的客户端时,只需要其中一个人登陆即可,其他人连接无线路由器即可上网。

原理:

我先从客户端的角度解释这个问题,官方版与非官方版客户端的区别在于官方版多了一个ip地址检测模块。该模块当检测到你手机的ip是以192开头的话,就判断你使用了无线路由,这时候客户端是不会让你上网的,然而学校内网分配的ip地址是以10开头的。

这是学校自动分配的内网ip:
这里写图片描述

所以,我们知道,学校是通过在客户端进行验证的,在服务器端并没有验证。

这里写图片描述

下面我从计算机网络的角度来解释一下,客户端联网的过程发生了什么。
如上图所示:数据包(宿舍)—->路由器(宿舍)—->…….—->学校总网关
总网关拿到数据包后,提取出包头的用户名和密码,并与后台数据库匹配,如果匹配,则数据包可以经过网关到达Internet并给客户端返回登陆成功的信息(这时宿舍路由器与总网关是联通的,所以连接路由器的手机可以直接上网),否则丢弃数据包并返回登陆失败的信息。

在我抓取官方客户端数据的时候,发现这个过程在是用HTTP协议实现的,并且用户名和密码是明文传输的

只要关闭路由器的DHCP功能,共享上网就无法实现了,因为此时的路由器相当于一个交换机了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值