Http協議網絡對時工具

2009-09-17 11:52:31

 

專業的網絡對時軟件大多采用NTP協議來獲取專業時間服務器時間對時,也有采用SNTP協議的,本來也想做個SNTP或NTP協議的對時工具自己用,雖然我手上也有好幾個採用NTP協議對時的軟件,但是使用過程中發現通過網通Http協議網絡對時工具 - jessezappy - jessezappy的博客的網絡上網的話,這些軟件全部都無法接收到時間服務器返回的,原先不瞭解NTP協議的時候以爲是程序本身有什麼問題,因爲通過電信的網絡上網的話一切正常,而我的網通網絡都是通過路由器分支出來多臺共享上網的。等到想自己做個玩玩的時候,研究了一下NTP協議才知道,原來大多NTP協議對時軟件都是採用UDP作爲網絡通訊協議,而UDP數據包無法通過我網通的路由器返回到運行對時軟件的電腦上,造成了對時軟件總是報無法進行網絡通訊的錯誤,原以爲是那些軟件設計上有什麼問題,就自己寫了一個SNTP協議UDP通訊的對時工具測試了一下,發現還是一樣的故障,服務器的UDP時間數據包根本無法傳輸到提出請求的客戶端,而用電信的網絡就一切正常,最終只好放棄採用UDP通訊協議的對時方式。因爲原來想自己製作對時工具的動機就是家裏通過網通網絡上網的電腦無法使用那些NTP協議對時軟件對時,後來在國家授時中心網站逛了幾圈,放棄了國家授時中心服務器提供的SNTP時間服務器對時的方法,想起來幾年前國家授時中心出過一個“時間精靈”,但是當時下載了安裝包安裝後,無法打開時間精靈的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://download.csdn.net/detail/jessezappy/7428971

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章