吵吵   2014-07-02  阅读:5,551

在使用网关认证的客户端程序后,终于再也不用一会儿就去输入那烦人的认证页面了,程序每隔30秒就去获取一下百度的页面,如果发现百度页面也获取不到,就重新发起一次认证,保证网络一直畅通无阻。

当然,你说,如果恰好百度瘫痪了,你这判断不就失灵了?吵吵说,建议中国政府的伟大的长城防火墙屏蔽百度这种邪恶的搜索引擎,好吧,你懂的。

吵吵今天又拿这个客户端程序说事,不是来黑百度的,而是在应用的过程中又发现了一些问题。

如上一版的程序,是有一个IP地址的选项栏的,这个选项栏中的IP地址是获取了本机电脑的,这样子在电脑直接连接校园网是没有问题的,但是如果该电脑是通过路由器连接的校园网呢?问题就来了,通过路由器连接校园网后,发起认证需要的IP地址不应该是电脑本地连接的IP地址,而是路由器WAN口获取到的校园网IP地址!

那么,如何获取到在使用路由器与否情况下,校园网给你分配的IP地址呢?找了半天发现,如果你访问校园网的网关认证页面,它就会返回你的校园网IP地址,这个IP地址和路由不路由无关了:

http://192.168.168.248/portalReceiveAction.do?wlanuserip=&wlanacname=SMU-2

从该页面的源码中,找到wlanuserip的一个隐藏的表单,就可以获得外网的IP地址了!

此时,我们又牵涉到上一版程序搞出的一个bug,就是当校园网认证页面也获取不到的时候,程序会报错崩溃,这一版就修复了这个bug,如果校园网都没有连接上,程序会给予提示的。

校园网网关认证v2

此外,我们还做了哪些改进呢?

1、增加了重要的一个功能,直接获取你本月的流量信息,账户余额信息。由于校园网只提供8G的流量,因此,经常跑去网上查流量变成一个费力的活,那么,能不能自动获得呢?

当然可以了,我们以同样的方式去模拟登陆,并获取单月的账单信息就好了。

这里说点题外话,想当年我还在学校做吵吵登陆器的时候,就干过这个活,每隔30秒,吵吵登陆器就会去学校那个网页查询流量信息,后来学校网络中心,看不过去了,觉得这么大的查询量,服务器承受不住,因此加了一个验证码。

我听我同学说查询页面加了验证码了,但是我的吵吵登陆器一直用的好好的,因此就不相信。后来到校园网页面分析了一下它的验证码设计,才哭笑不得。它那个验证码是用js来判断的,对于这些模拟登陆的程序来说,直接就无视了!

直到今天,我写代码也不用考虑验证码的事情,这是个多么自欺欺人的东西,可见制作的人的水平了。

我们可以拿这段代码来学习一下:

<input type="button" name="Submit" onclick="checkcode()" value="提交">
function checkcode(){
      var code = $("#veryCode").attr("value");   
    code = "c=" + code;   
    $.ajax({   
        type:"POST",   
        url:"../../script/checkcode.jsp",   
        data:code,   
        success:callback   
    });  
    
  }
  function callback(data){ 
    	if(data==0){
    	   alert("验证码错误!");
	   reloadImg();
    	   return false;  
    	}else if(data==2){
    	   alert("验证码不能为空!");
	   reloadImg();
	   return false;  
    	}else if(data==1){
	  document.getElementById("myForm").submit();
	}
    }

只做JS验证,不做Post过去的数据验证,这也是人才。

2、增加了密码保存、自动登陆选项,当全部都选了之后,下次一开打程序,它就可以自动登陆了!

3、由于去获取网页需要一些时间,如果时间较长,因此,容易造成程序假死,为了解决这个问题,吵吵将第二版的程序,改成了多线程支持的,程序就不会死在那里了,即便是你网络没有联通,也不会了,只会死线程,而不会死进程了。

好了,该说的都说完了。想起那天我帮科里一个老师在数据库中做统计的事情来,他说:“还是你快,不然我要搞一天才搞的完了,你这程序搞搞,不到半小时就搞定了!“,我只想说,人和动物的区别在于人会使用工具,而人与人之间的区别在于,有些人会使用更加先进的工具。

想要程序么? 入群。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

2条回应:“南方医科大学校园网网关认证客户端程序v2.0”

  1. 屠龙说道:

    能人越来越多了佩服一下

  2. M.Felidae说道:

    有个Linux下支持BAS认证的客户端,暂时还没尝试https://github.com/Red54/aecium

发表评论

电子邮件地址不会被公开。 必填项已用*标注