公司为跨国企业, 与工厂间的数据利用VPN进行资料交换, 利用Python配合Windows的排程记录各站点间网路的状况
import reimport socketimport datetimedef internet_on(server_addr): """测试网路是否可连线 参数: server_addr """ try: ip_reg = re.compile('^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$') is_ip = ip_reg.match(server_addr) #print("checking internet connection..") socket.setdefaulttimeout(5) if is_ip is None: host = socket.gethostbyname(server_addr) else: host = server_addr s = socket.create_connection((host, 80), 2) #time out 会 raise socket.timeout("timed out") s.close() #print('internet on.') return True except: #Exception as e: #print(e) #print("internet off.") return False def write_log(file_name, msg): with open(file_name, 'a', encoding='utf-8') as file_obj: file_obj.write(msg) # vpn server 地址db_ip = {"RichPine":"192.168.0.1", "RichWay":"192.168.1.1", "EverBest":"192.168.2.1", "Google":"www.google.com"}for fty_name in db_ip: dt_now = datetime.datetime.now() file_name = dt_now.strftime('%Y%m%d') + '_' + fty_name + '.log' msg = dt_now.strftime('%Y-%m-%d %H:%M:%S') result = internet_on(db_ip[fty_name]) if result == False: msg = msg + ' : off ----------\n' else: msg = msg + ' : on\n' #print(fty_name, db_ip[fty_name], result, file_name, msg) write_log(file_name, msg)
执行结果