小当黑客一把
老婆周五(2007-1-19)要去海淀妇幼医院去做定期产前检查,但是海淀的新爹似乎都很认这个医院,每天早上挂号都要几十米,6点以后到了几乎就没有可能挂到专家号了。最近可以网上挂号,可以提前三天,也就是今天(2007-1-16)凌晨可以开始挂号。好不容易等服务器时间跨过00:00,服务器立刻负载大增,进入挂号页面几十秒才显示,我一看这个情况,赶快改挂专科号,不容易,挂了一个3号,再看那五六个专家没人15个号,都挂满了…….
为了熬夜挂号怕误事,茶水喝多了,挂完号睡不着了。看这海淀妇幼的网上挂号运气,这个网站看起来一般,要不研究一下看看能不能去掉3天的限制。看看了他的html源代码,系统给定的日期代码不是直接的日期,而是一串数字。仔细看看,有点意思,给出的三个日期代码的数字串末尾一样,看来三个有关系。再看网站是PHP写的,立时怀疑三个数字串都是Unix时间戳。立时找来PHP for win32,给自己机器上装了一个,把它的数字串拷贝过去,用PHP拷贝按照Unix时间戳解码,没错都是Unix时间戳。在刷新两下,发现数字串变化,再解析,时间是刷新时服务器时间加3天。这就好说了,不用什么复杂程序,做一个html就能搞定。
把它的起始选日期的页面另存下来,手动修改一个2007-1-22的Unix时间戳,测试,可以挂2007-1-22的号了。这样基本程序原形完工。但是这样搞太麻烦,大家都是程序员,都是懒人,这个工作是可以自动完成的嘛!修改另存的页面,去掉选择时间,改成手动添年月日和一个Unix时间戳文本框。加一个按钮,在点击按钮的时候生成Unix时间戳,再点提交,进入指定日的挂号界面。到此界面就设计完成。
后面的计算Unix时间戳的程序费了老大的劲。很多年没有写js了,嗯,得有4年没有写js了。js里面有Date对象,但是忘了哪个方法管转换时间戳了,Google找了一个代码段,一测生成的不是标准的Unix时间戳。继续Google找,发现PHP的时间戳好像是毫秒戳,js的Date对象的是微秒戳,这个好办,微秒戳除以1000。嗯,时间戳可以了。后面如何把时间戳写进文本框,又找了一段代码作例子。这么长时间不写js真是不行了。再测试,成功!
犹豫了一下,还是把这个发布出来。毕竟现在当个新爹挺不容易的。不过大家手下留情,万一用的太滥,这个漏洞被发现了,有得自己受苦了。还有里面的html点击的时候,IE会自动把里面js禁用,这个时候要把屏幕上部的那个提示条,选择允许组织的内容。不然是算不出Unix时间戳的。
不放心的朋友可以自己检查源代码,我这里下载的是没有病毒的。还有就是我还没有测试是否能通过后面的挂号,测试过的朋友能用的话给我发个邮件,分享一下你们当新爹的感受。使用这个挂号程序会带来什么后果我也不负任何责任的,如果被医院发现说你挂得号无效,可和我没有关系,这可是你自己的老婆怀孕作检查。祝各位好运!
下载地址如下:http://blog.zhangchi.com.cn/downloads/guahao.rar
注:海淀妇幼好像现在不能网上挂号了。2010-8-23
近期评论