首页 > 代码库 > Http协议网络对时工具
Http协议网络对时工具
2009-09-17 11:52:31
专业的网络对时软件大多採用NTP协议来获取专业时间server时间对时,也有採用SNTP协议的,本来也想做个SNTP或NTP协议的对时工具自己用,尽管我手上也有好几个採用NTP协议对时的软件,可是使用过程中发现通过网通的网络上网的话,这些软件所有都无法接收到时间server返回的,原先不了解NTP协议的时候以为是程序本身有什么问题,由于通过电信的网络上网的话一切正常,而我的网通网络都是通过路由器分支出来多台共享上网的。等到想自己做个玩玩的时候,研究了一下NTP协议才知道,原来大多NTP协议对时软件都是採用UDP作为网络通讯协议,而UDP数据包无法通过我网通的路由器返回到执行对时软件的电脑上,造成了对时软件总是报无法进行网络通讯的错误,原以为是那些软件设计上有什么问题,就自己写了一个SNTP协议UDP通讯的对时工具測试了一下,发现还是一样的故障,server的UDP时间数据包根本无法传输到提出请求的客户端,而用电信的网络就一切正常,最终仅仅好放弃採用UDP通讯协议的对时方式。由于原来想自己制作对时工具的动机就是家里通过网通网络上网的电脑无法使用那些NTP协议对时软件对时,后来在国家授时中心站点逛了几圈,放弃了国家授时中心server提供的SNTP时间server对时的方法,想起来几年前国家授时中心出过一个“时间精灵”,可是当时下载了安装包安装后,无法打开时间精灵的ActiveX对时控件,这次又又一次下载“时间精灵”安装包安装后还是一样的问题,在时间精灵网页无法打开时间精灵的控件,无奈之下分析了一下时间精灵的安装包,发现里面的核心对时控件是一个叫“client.ocx”的东东,打开看了一下发现是用VB6写的,于是就用VB6将“client.ocx”控件包装了一下,这回最终能够做成个独立的程序正常执行了,拿到家里的网通网络试用了一下,发现能够正常对时,本以为就此了事了,最终能够正常对时了,可是好景不长,那个client.ocx执行了一阵后就报13号错误终止执行了,想使用定时对时的想法再次泡汤了,这个错误应该是当时client.ocx的开发者开发的太仓促,错误处理没有做好的原因了。再次无奈之余,想到client.ocx是採用VB6开发的,并且client.ocx能在网通网络下正常对时,可见client.ocx肯定不是使用NTP协议进行对时的,用二进制编辑器打开client.ocx分析了一下,发现它里面有个网址:http://www.time.ac.cn/times/timefairy.aspx,用通讯拦截程序看了一下client.ocx的通讯数据,发现它仅仅是直接调用http://www.time.ac.cn/times/timefairy.aspx的返回数据,打开http://www.time.ac.cn/times/timefairy.aspx一看,是一串乱码,刷新几次后,发现还在变化,猜想肯定是一串时间日期数据的编码,也就是说仅仅要对这串乱码进行解码后应该就是正确的时间数据了,就能够用来对时了,并且这个是Http协议的,不受什么网关的影响,仅仅要能打开网页就能对时。研究了几天最终成功破解这串乱码,做成了这个对时工具,发出来给须要的朋友分享下。
下载地址:http://www.rayfile.com/files/37d23fba-a349-11de-b997-0014221f469f/
本站免费下载:http://download.csdn.net/detail/jessezappy/7428971