国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python腳本設置超時機制系統時間的方法

2020-01-04 17:43:05
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了python腳本設置超時機制系統時間的方法,感興趣的小伙伴們可以參考一下
 

本文為大家介紹了python腳本設置系統時間的方法,一共有兩種,其一是調用socket直接發送udp包到國家授時中心,其二是調用ntplib包。我在本地電腦ping 國家授時中心地址cn.pool.ntp.org有時出現丟包,然而,二者都沒有檢查udp是否丟包的機制,方法一在udp丟包后一直處于阻塞狀態無法退出,方法二雖然會提示超時,但是不再做其它嘗試,比如重新發包,或者向同一個域名的不同IP地址發包。于是,嘗試在方法一的代碼基礎上,增加了超時機制,并且嘗試向同一個域名的不同IP地址發包。

python腳本設置超時機制系統時間的方法

具體修改后的完整代碼如下:

#-*- coding:utf-8 -*-import socketimport structimport timeimport win32apiimport osimport redef getTime(TimeServerAddresses):  TIME_1970 = 2208988800L  client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  client.settimeout(3)  data = '/x1b' + 47 * '/0'  #TimeServer_ip=socket.gethostbyname('cn.pool.ntp.org')  #TimeServer_ip='202.118.1.130'  Port=123  for address in TimeServerAddresses:    success=False    count=0    while not success and count<3:      print address,count      try:        client.sendto(data, (address, Port))        data, address = client.recvfrom(1024)        success=True      except socket.timeout:        print 'Request timed out!'        count=count+1    if success==True:a      break  data_result = struct.unpack('!12I', data)[10]  data_result -= TIME_1970  return data_resultdef setSystemTime(now_time):  tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst = time.gmtime(now_time)  win32api.SetSystemTime(tm_year, tm_mon, tm_wday, tm_mday, tm_hour, tm_min, tm_sec, 0)  print "Set System OK!"def getServerIP():  res1=os.popen('nslookup cn.pool.ntp.org')  result1=res1.read()  addresses=result1.split('/n/n')[1].split('/n')[1][12:].split(',')  return addresses  #for address in addresses:  #  res=os.popen('ping -n 2 '+address)  #  result=res.read()  #  received_num=int(re.findall('Received = [0-9]',result)[0].split('=')[1])  #  if received_num > 1:  #    break  #TimeServer=addressif __name__ == '__main__':  addresses=getServerIP()  now_time=getTime(addresses)  setSystemTime(now_time)  print "%d-%d-%d %d:%d:%d" % time.localtime(now_time)[:6]

以上就是本文的全部內容,希望對大家的學習有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邹平县| 会同县| 加查县| 扎囊县| 邹城市| 北碚区| 札达县| 加查县| 鄂伦春自治旗| 福州市| 墨竹工卡县| 仪陇县| 潼南县| 锡林郭勒盟| 凯里市| 邢台县| 边坝县| 玉林市| 新安县| 吉水县| 兴城市| 林周县| 西丰县| 安陆市| 格尔木市| 囊谦县| 什邡市| 内黄县| 遵义县| 东阳市| 疏勒县| 平陆县| 丹阳市| 玛多县| 外汇| 博湖县| 双流县| 阿克苏市| 南阳市| 泸定县| 神木县|