一种免费无线上网的认证方法

文档序号:9330537阅读:795来源:国知局
一种免费无线上网的认证方法
【技术领域】
[0001] 本发明涉及网络技术领域,特别涉及免费无线上网的认证方法。
【背景技术】
[0002] 现有的大型商场、购物中心、写字楼、饭店等公共设施内均提供有免费WIFI无线 上网环境,用户可先打开智能手机的WIFI设置进行连接AP,然后需要输入本人手机号码, 发起申请认证请求。公共WIFI云服务器根据申请认证请求生成相应的上网认证码,并将 其返回给用户输入的手机号码。用户需要将该上网认证码输入到相应的输入框中生成上网 认证请求,云服务器认证通过后下发认证结果给AP,随后AP放行用户的访问,用户可正常 访问互联网。
[0003] 图1示意性地给出了现有技术中公共WIFI环境组网的结构图,如图1所示,系统 由AP和公共WIFI运营商云服务器组成,下文中简称云服务器。AP也可能就是一个无线路 由器,负责与云服务器通信。在云服务器上完成用户管理,代理商管理和设备查看。AP负责 从云服务器处获取认证方式,由云服务器下发认证结果。云服务器一般包括认证管理服务 器和PORTAL服务器,下文中所述的portal实指云服务器的一部分。
[0004] 图2示意性地给出了现有技术中无线上网的流程图,如图2所示,现有方法的步骤 如下:
[0005] 步骤1、用户打开手机终端的无线网络设置,选择并连接商铺的免费WIFI,成功。 此时不会自动弹PORTAL认证,用户也还没有经过系统认证,无法访问INTERNET。
[0006] 步骤2、用户需自己打开手机的浏览器,输入要访问的网址,如WWW. BAIDU. COM,以 便触发认证。
[0007] 步骤3、浏览器的访问被AP重定向到一个PORTAL页面,页面提示用户输入手机号, 点击获取验证码。
[0008] 步骤4、用户需要等待验证码的到来,然后在认证页面输入验证码。
[0009] 步骤5、完成终端在免费WIFI系统中的认证过程,之后可正常访问互联网。
[0010] 上述上网方式存在诸多不足,如:
[0011] 1.上网过程非常烦锁,手机号总共有11位,验证码有6-8位,为了上网就得输入将 近20个数字或字母,手机终端本身设计为方便触摸操作而非输入操作,加上还要有一个等 验证码的过程,有时因为短信网关原因,验证码还发送不成功,所有这些因素加起来,导致 了整个认证的效率非常低下,用户体验极差。
[0012] 2.有些用户以为加上WIFI就能用了,没有意识到需要自己打开一个浏览器去触 发认证。当用户直接打开微信却发现用不了时,会怀疑是无线信号等原因导致上不了网,直 接放弃使用,这无疑会导致商家直接失去这批用户。

【发明内容】

[0013] 为了解决上述现有技术方案中的不足,本发明提供了一种用户体验好的免费无线 上网的认证方法。
[0014] 本发明的目的是通过以下技术方案实现的:
[0015] -种免费无线上网的认证方法,所述认证方法包括以下步骤:
[0016] (Al)打开移动终端的无线网络设置,选择并连接商家的免费WIFI ;
[0017] (A2)所述移动终端发出探测网络的报文,处理所述报文,使移动终端自动弹出认 证页面,用户点击微信认证方式;
[0018] (A3)微信自动打开,用户输入所述商家的微信公众号。
[0019] (A4)微信弹出商家的信息,用户点击"关注",从而完成免费上网认证。
[0020] 根据上述的认证方法,优选地,在步骤(A3)中,用户用扫一扫功能,扫描商家的微 信公众号,从而输入微信公众号。
[0021] 根据上述的认证方法,可选地,在步骤(A2)中:
[0022] 如果用户已经关注过商家的微信公众号,再次来到该商家时,用户只需在微信中 打开商家微信公众号,进入商家的功能界面,点击"立即上网"功能按钮。
[0023] 根据上述的认证方法,优选地,在步骤(A2)中:
[0024] 所述报文的处理方法是:检查报文是否符合探测报文条件,如果符合,进行处理; 如果不符合,终结报文。
[0025] 根据上述的认证方法,可选地,所述报文满足以下要求:
[0026] 是TCP报文、目的端口是80、带有PSH标志位,报文内容符合HTTP协议格式。
[0027] 根据上述的认证方法,优选地,HTTP头User-Agent:包含字符 串"CaptiveNetworkSupport ",或者 HTTP 头包括的 URL 地址为:"/library/test/success. html " 或者 User-Agent 包含字符串:"wispr"。
[0028] 根据上述的认证方法,优选地,在步骤(A2)中:
[0029] 所述报文的处理方法是:
[0030] 构造服务器的响应报文发送给所述移动终端,响应报文带的内容是 "HTTP302F0UND\r\n",并带上相对应的参数。
[0031] 根据上述的认证方法,优选地,构造服务器的响应报文的方法是:
[0032] (BI)在LINUX内核中创建一个SKB ;
[0033] (B2)计算所述移动终端的TCP请求报文,获得TCP长度、TCP SEQ序列号,将两者 相加,作为回复TCP报文的ACK号;
[0034] 用所述移动终端的ACK号作为回复TCP报文的序列号;将要回复的TCP载荷组装 出一个TCP报文内容;
[0035] (B3)将所述TCP报文内容拷贝到SKB的传输层位置;
[0036] (B4)根据移动终端的IP地址信息,组装出一个标准的IP报文结构头,拷贝到SKB 的网络层位置;
[0037] (B5)由网络协议栈发送函数dev_queue_xmit(skb),将上述SKB发送出去。
[0038] 根据上述的认证方法,可选地,
[0039] 当回复了 302给所述移动终端后,所述移动终端会根据302重定向提示发起第二 次连接,此时连接的目的地址将指向AP ;
[0040] 移动终端根据302的结果,自动连接AP本地WEB服务器;AP便可以在响应中回复 带有广告内容的页面。
[0041] 根据上述的认证方法,可选地,在所述带有广告内容的页面中嵌入一个设定的URL 链接,指向PORTAL服务器的一个空白横线图片:
[0042] 如果判断出移动终端已完全显示出了 PORTAL页面,就可以对移动终端后续的周 期性探测请求回复成功结果,这样,移动终端才会认为无线是可用的,显示出已成功连接的 无线图标;否则,一直尝试得不到成功结果,移动终端会认为无线不可达而将无线自动关 闭。
[0043] 根据上述的认证方法,优选地,非探测报文的终结的方法是:
[0044] 如果接到的终端报文是TCP 80端口的SYN请求,则丢弃报文并以目标地址身份去 回复 SYN-ACK ;
[0045] 如果接到的终端报文TCP 80端口的是ACK,不带数据,则直接丢弃;
[0046] 如果接到的终端报文是DNS报文,则重定向到本地DNS代理服务器;
[0047] 如果接到的是终端的ICMP报文,则直接放行,以便于进行网络的诊断;
[0048] 其他报文,直接丢弃。
[0049] 根据上述的认证方法,优选地,步骤(A3)进一步包括以下步骤:
[0050] (Cl)当用户用微信扫一扫功能扫了商家的微信号时,移动终端发出一个HTTP请 求到微信;
[0051] (C2)AP预先配置好微信的域名和IP地址,以便AP直接放行;当AP接到访问该目 的IP的报文时,直接转发出去给微信服务器;
[0052] (C3)用户点击商家的微信详情页面中的"关注"按钮时,移动终端会向商家的服务 器地址发送一个HTTP GET请求,请求带上一个约定好的URL参数;
[0053] 当AP识别出该字符串时,重定向到后台云服务器系统;所述用户的信息记录在云 端;
[0054] (C4)所述云服务器系统接到请求,判断用户认证通过,修改在线用户表中的用户 为已认证,下发结果给AP,请求AP放行该终端;
[0055] (C5)该移动终端后续访问被AP放行。
[0056] 根据上述的认证方法,优选地,
[0057] 所述AP动态地更新所述域名对应的IP,转换成IP白名单进行业务处理,从而使得 在移动终端与微信服务器进行TCP连接握手的阶段就正确地放通。
[0058] 根据上述的认证方法,优选地,放通微信访问包括以下步骤:
[0059] (Dl)AP中预配置好微信域名;
[0060] (D2)AP中预配置好微信外其他服务器IP名单;
[0061] (D3)移动终端与微信服务器连接:
[0062] 如果是基于域名,且没有CACHE,则会先发出DNS查询,AP截获DNS响应,匹配查询 的主机名包括微信的域名,刷新IP地址到IP白名单中;进入步骤(D4);
[0063] 如果移动终端本地有DNS CACHE,则会跳过DNS查询;进入步骤(D5);
[0064] (D4)移动终端与微信服务器发起TCP握手,发出SYN报文,AP判断目标IP是属于 IP白名单,直接放行该IP报文;
[0065] (D5)因移动终端不发DNS直接向微信服务器的IP发起HTTP访问,AP此时尚不具 备对应的IP白名单,因此判断目标IP不属于IP白名单,AP直接回复SYN-ACK,进行终结处 理;
[0066] (D6)移动终端对SYN-ACK响应ACK,TCP握手成功。AP收到ACK后,丢弃
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1