年关将近,又到了春运时间,火车票自然是这段期间最紧俏的资源了。与以往几十年不同的是,今年开通了网络购票、电话订票和真正的实名制功能。其中最让码农眼前一亮的就是网络购票功能了。写了那么多年的程序,终于有用武之地了。
我作为一个码农,写这方面的程序,算下来已经有7年历史了吧。最早的时候是在大学做选课程序(准确的说应该是抢课程序),后来帮同学做刷票程序,再到后来做WebGame的外挂,各种抓包分析程序,一个个网络应用程序还是让我记忆犹新。现在买火车票也能够通过网络实现,那么当然也可以写个程序实现登录、查询车票、下订单这些功能了。
最近项目刚上线,Bug一堆,工作比较忙,再加上我是坐飞机回家,不买火车票,所以也没有那么大的动力和那么多的时间来开发这个程序了。程序写了一半,登录实现,查询实现,就剩下下订单功能和支付功能了,不过支付功能我觉得可能有难度,具体还没有试过,毕竟这东西是需要在IE下真的付款,然后抓包分析的,所以也不好调试。
我的程序虽然没有完成,不过网上已经有不少码农放出了自己完成的程序,比如这几个
GoHome:http://code.google.com/p/go-home/
德广火车票助手:http://www.appinn.com/12306-auto-login-client/
12306 订票助手:https://github.com/zzdhidden/12306
12306.cn 网络购票助手:http://www.u-tide.com/fish/soft/44/
等等。
我个人比较推荐的是12306 订票助手:https://github.com/zzdhidden/12306 这个程序其实很简单,是基于JQuery的一个JS文件,在Chrome中运行效果很好,正好我用的也是Chrome。
这些程序其实原来都是差不多的,主要的还是利用了12306系统中的一个Bug,实现了不断重试提交数据,直到成功。这个Bug就是在用户提交验证码进行比对的时候,没有在比对后重置验证码,导致接下来重新提交数据时,使用同一个验证码就验证通过了。这个Bug其实修复起来很简单,我在3年多前的博客中就已经提到过该Bug和修正,参见:http://www.cnblogs.com/studyzy/archive/2008/06/04/1213192.html
另外还有一个问题就是现在的验证码实在太简单了,没有什么混淆,很容易通过程序识别出来。
毕竟这也是铁道部第一次做电子商务,虽然有很多不足之处,但是能够主动改变现状,还是让人感到欣慰。希望网络购票的这个Bug一直保留着,下次我买票的时候也可以利用这个Bug刷票,这真是铁道部留给广大程序员门的一点福利!最终大家有家都能回!