# This is a sample Python script.
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
import telnetlib as Tn
import telnetlib as Tk
from tkinter import messagebox
from tcping import Ping
import time
import os
import os.path
import logging
import datetime
class tele():
def __init__(self):
self.tn = None
#self.tn = Tn.Telnet("192.168.1.1", port=23, timeout=10)
self.accout = "telecomadmin".encode()
self.password = "nE7jA%5m".encode()
self.ifconfig_2 = "ifconfig ra0 down".encode()
self.ifconfig_2_up = "ifconfig ra0 up".encode()
self.name = "tc login:".encode()
self.mode = 1
self.wmode = "w1"
#log
self.t_log = log()
#振铃指令
self.evcom = "evcom".encode()
self.di= "di".encode()
self.ir = "ir if=0".encode()
self.reboot1 = "reboot".encode()
def login(self):
self.tn = Tn.Telnet("192.168.1.1", port=23, timeout=10)
# tn = Tn.Telnet("192.168.1.1",port=23,timeout=10)
print(self.accout)
try:
respon = self.tn.read_until(self.name)
except Exception as e:
print("------respon is error -------\n")
# print("the is :",respon)
try:
self.tn.write(self.accout + b'\n' + self.password + b'\n')
except Exception as e:
messagebox.showinfo("error", "the login error!!!\n")
def write(self):
try:
self.tn.write(self.evcom + b'\n')
self.tn.write(self.di + b'\n')
self.tn.write(self.ir + b'\n')
except Exception as e:
messagebox.showinfo("error", "write error!\n")
def reboot(self):
try:
print("11")
self.log_w("reboot\n")
self.tn.write(self.reboot1 + b'\n')
except Exception as e:
print("reboot error!\n")
def log_w(self,buff):
self.t_log.log_write(buff)
def end(self):
messagebox.showinfo("ok", "the fun is ok")
def close(self):
self.tn.close()
def test(self):
print("-----into-----\n")
class time_time():
def __int__(self):
self.time_flag = 1
def start_time(self):
time.sleep(30)
def start_di_time(self):
time.sleep(120)
def reboot_time(self):
time.sleep(30)
class log():
def __init__(self):
self.path = os.getcwd()
self.filename1 = self.path + '/' + 'log_voip.txt'
logging.basicConfig(filename=self.filename1, level=logging.INFO)
# def get_path(self):
# self.path = os.getcwd()
# self.filename1 = self.path + '/' + 'log.txt'
# logging.basicConfig(filename=self.filename1, level=logging.INFO)
def log_write(self,log_info):
logging.info(log_info)
class ping_tool():
def __init__(self):
self.ping_7 = Ping('192.168.1.1')
def ping_start(self,num):
self.ping_7.ping(num)
list = []
#ret = self.ping_7.result.table
ret = self.ping_7.result.raw
list = ret.split()
print(list)
print(list[8],list[7])
return list[7]
def ping_loop(self):
while True:
result = self.ping_start(10)
if int(result) > 1:
break;
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
num = 0
#liyong = tele()
sleep_time = time_time()
#liyong_time = time_time()
#liyong_time.start_time()
#ping 192.168.1.1
ping_1 = ping_tool()
llog = log()
liyong = tele()
# liyong.login()
# liyong.write()
while num < 1200:
ping_1.ping_loop()
current_time = datetime.datetime.now()
str1 = "num="+str(num)
llog.log_write("------------------------------------------------------------------------------------")
llog.log_write("--------------------------------------start-----------------------------------------")
llog.log_write(str1)
llog.log_write("------------------------------------------------------------------------------------")
llog.log_write("------------------------ping 192.168.1.1 right----------------------"+str(current_time))
current_time = datetime.datetime.now()
liyong.login()
llog.log_write("------------------------login 192.168.1.1 success-------------------"+str(current_time))
# sleep 60
sleep_time.start_time()
# start di
current_time = datetime.datetime.now()
llog.log_write("------------------------start Ring Ring Ring------------------------"+str(current_time))
print("11111111write------\n")
liyong.write()
# di 300 s
sleep_time.start_di_time()
current_time = datetime.datetime.now()
llog.log_write("------------------------end Ring Ring Ring------------------------"+str(current_time))
# di end
liyong.close()
liyong.login()
liyong.reboot()
sleep_time.reboot_time()
num = num +1
liyong.close()
llog.log_write("-------------------------------------------------------------------------------------")
llog.log_write("--------------------------------------end--------------------------------------------")
llog.log_write("-------------------------------------------------------------------------------------")
在处理ping异常导致的程序崩溃,程序进入到死循环状态的问题后的代码修改
# This is a sample Python script. # Press Shift+F10 to execute it or replace it with your code. # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings. import telnetlib as Tn import telnetlib as Tk from tkinter import messagebox from tcping import Ping import time import os import os.path import logging import datetime from threading import Thread class tele(): def __init__(self): self.tn = None #self.tn = Tn.Telnet("192.168.1.1", port=23, timeout=10) self.accout = "telecomadmin".encode() self.password = "nE7jA%5m".encode() self.ifconfig_2 = "ifconfig ra0 down".encode() self.ifconfig_2_up = "ifconfig ra0 up".encode() self.name = "tc login:".encode() self.mode = 1 self.wmode = "w1" #log self.t_log = log() #振铃指令 self.evcom = "evcom".encode() self.di= "di".encode() self.ir = "ir if=0".encode() self.reboot1 = "reboot".encode() #2.4G self.ifconfig = "ifconfig".encode() self.arm = "ra0".encode() def login(self): try: self.tn = Tn.Telnet("192.168.1.1", port=23, timeout=10) except Exception as e: print("login error!!!") return False # tn = Tn.Telnet("192.168.1.1",port=23,timeout=10) print(self.accout) try: respon = self.tn.read_until(self.name) except Exception as e: print("------respon is error -------\n") # print("the is :",respon) try: self.tn.write(self.accout + b'\n' + self.password + b'\n') except Exception as e: #messagebox.showinfo("error", "the login error!!!\n") print("------the login error!-------") return True #check wifi is ok def write_f(self): try: self.tn.write(self.ifconfig + b'\n') re = self.tn.read_until(self.arm) re=re.decode() print(re) if "ra0" in re: print("the wifi is ok ") except Exception as e: print("time out") def write(self): try: print("write di di di") self.tn.write(self.evcom + b'\n') self.tn.write(self.di + b'\n') self.tn.write(self.ir + b'\n') except Exception as e: #messagebox.showinfo("error", "write error!\n") print("----write di di di error------!") def reboot(self): try: print("reboot") self.log_w("reboot\n") self.tn.write(self.reboot1 + b'\n') except Exception as e: print("reboot error!\n") return False def log_w(self,buff): self.t_log.log_write(buff) def end(self): messagebox.showinfo("ok", "the fun is ok") def close(self): self.tn.close() def test(self): print("-----into-----\n") class time_time(): def __int__(self): self.time_flag = 1 def start_time(self): time.sleep(120) def start_di_time(self): time.sleep(5) def reboot_time(self): time.sleep(110) def wait_time(self): time.sleep(10) class log(): def __init__(self): self.path = os.getcwd() self.filename1 = self.path + '/' + 'log_voip.txt' logging.basicConfig(filename=self.filename1, level=logging.INFO) # def get_path(self): # self.path = os.getcwd() # self.filename1 = self.path + '/' + 'log.txt' # logging.basicConfig(filename=self.filename1, level=logging.INFO) def log_write(self,log_info): logging.info(log_info) class ping_tool(): def __init__(self): self.ping_7 = Ping('192.168.1.1') def ping_false(self): result = self.ping_7.ping(1) if result != None: return result def ping_start(self,num): self.ping_7.ping(num) list = [] #ret = self.ping_7.result.table ret = self.ping_7.result.raw list = ret.split() print(list) print(list[8],list[7]) return list[7] def ping_loop(self): ping_num=0 try: result = self.ping_start(10) ping_num=ping_num+1 if int(result) >= 1: return True return False except Exception as e: print("the check error!") def ping_loop_end(self): try: result = self.ping_start(1) except Exception as e: return True # Press the green button in the gutter to run the script. if __name__ == '__main__': num = 0 ping_num1=0 #liyong = tele() sleep_time = time_time() #liyong_time = time_time() #liyong_time.start_time() #ping 192.168.1.1 #ping_1 = ping_tool() llog = log() #liyong = tele() #a = ping_1.ping_false() # liyong.login() # liyong.write() while num < 1200: try: liyong = tele() print("start function and wait 120s") print(num) sleep_time.start_time() current_time = datetime.datetime.now() str1 = "num="+str(num) llog.log_write("------------------------------------------------------------------------------------") llog.log_write("--------------------------------------start-----------------------------------------") llog.log_write(str1) llog.log_write("------------------------------------------------------------------------------------") #llog.log_write("------------------------ping 192.168.1.1 right----------------------"+str(current_time)) current_time = datetime.datetime.now() while liyong.login() == False: print("login error,check it") #ping_1.ping_loop() print("login success") #liyong.login() #sleep_time.wait_time() liyong.reboot() # while liyong.reboot() == False: # print(" ") print("wait 10s") sleep_time.wait_time() liyong.close() llog.log_write("------------------------login and reeboot 192.168.1.1 success-------------------"+str(current_time)) print("reboot and wait 110s") sleep_time.reboot_time() #booot slepp while liyong.login() == False: print("login error and wait 10s") sleep_time.wait_time() # start di current_time = datetime.datetime.now() llog.log_write("------------------------start Ring Ring Ring------------------------"+str(current_time)) print("------------start di di di-----\n") liyong.write() # di 300 s print("wait di di di 10s") sleep_time.start_di_time() current_time = datetime.datetime.now() llog.log_write("------------------------end Ring Ring Ring------------------------"+str(current_time)) # di end print("di di di end and function start") num = num +1 liyong.close() ping_1 = ping_tool() while ping_1.ping_false() != False: print("ping") # while ping_1.ping_loop_end()==True: # print("ping") llog.log_write("-------------------------------------------------------------------------------------") llog.log_write("--------------------------------------end--------------------------------------------") llog.log_write("-------------------------------------------------------------------------------------") except Exception as e: print("try agin")
voip测试新需求:每隔30分钟,振铃5分钟
# -*- coding: utf-8 -*- # This is a sample Python script. # Press Shift+F10 to execute it or replace it with your code. # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings. import telnetlib as Tn import telnetlib as Tk from tkinter import messagebox from tcping import Ping import time import os import os.path import logging import datetime from threading import Thread class tele(): def __init__(self): self.tn = None #self.tn = Tn.Telnet("192.168.1.1", port=23, timeout=10) self.accout = "telecomadmin".encode() self.password = "nE7jA%5m".encode() self.ifconfig_2 = "ifconfig ra0 down".encode() self.ifconfig_2_up = "ifconfig ra0 up".encode() self.name = "tc login:".encode() self.mode = 1 self.wmode = "w1" #log self.t_log = log() #振铃指令 self.evcom = "evcom".encode() self.di= "di".encode() self.ir = "ir if=0".encode() #关闭振铃指令 self.endif = "ir if=0 dur=0".encode() self.reboot1 = "reboot".encode() #2.4G self.ifconfig = "ifconfig".encode() self.arm = "ra0".encode() def login(self): try: self.tn = Tn.Telnet("192.168.1.1", port=23, timeout=10) except Exception as e: print("login error!!!") return False # tn = Tn.Telnet("192.168.1.1",port=23,timeout=10) print(self.accout) try: respon = self.tn.read_until(self.name) except Exception as e: print("------respon is error -------\n") # print("the is :",respon) try: self.tn.write(self.accout + b'\n' + self.password + b'\n') except Exception as e: #messagebox.showinfo("error", "the login error!!!\n") print("------the login error!-------") return True #check wifi is ok def write_f(self): try: self.tn.write(self.ifconfig + b'\n') re = self.tn.read_until(self.arm) re=re.decode() print(re) if "ra0" in re: print("the wifi is ok ") except Exception as e: print("time out") def start_evcom(self): try: print("start evcom") self.tn.write(self.evcom + b'\n') except Exception as e: #messagebox.showinfo("error", "write error!\n") print("----write di di di error------!") def start_di(self): try: print("satrt di di di") self.tn.write(self.di + b'\n') self.tn.write(self.ir + b'\n') except Exception as e: #messagebox.showinfo("error", "write error!\n") print("----write di di di error------!") def end_di(self): try: print("end di di di") self.tn.write(self.endif + b'\n') except Exception as e: #messagebox.showinfo("error", "write error!\n") print("----write di di di error------!") def reboot(self): try: print("reboot") self.log_w("reboot\n") self.tn.write(self.reboot1 + b'\n') except Exception as e: print("reboot error!\n") return False def log_w(self,buff): self.t_log.log_write(buff) def end(self): messagebox.showinfo("ok", "the fun is ok") def close(self): self.tn.close() def test(self): print("-----into-----\n") class time_time(): def __int__(self): self.time_flag = 1 def start_time(self): time.sleep(300) def start_di_time(self): time.sleep(1800) def reboot_time(self): time.sleep(110) def wait_time(self): time.sleep(10) class log(): def __init__(self): self.path = os.getcwd() self.filename1 = self.path + '/' + 'log_voip.txt' logging.basicConfig(filename=self.filename1, level=logging.INFO) # def get_path(self): # self.path = os.getcwd() # self.filename1 = self.path + '/' + 'log.txt' # logging.basicConfig(filename=self.filename1, level=logging.INFO) def log_write(self,log_info): logging.info(log_info) class ping_tool(): def __init__(self): self.ping_7 = Ping('192.168.1.1') def ping_false(self): result = self.ping_7.ping(1) if result != None: return result def ping_start(self,num): self.ping_7.ping(num) list = [] #ret = self.ping_7.result.table ret = self.ping_7.result.raw list = ret.split() print(list) print(list[8],list[7]) return list[7] def ping_loop(self): ping_num=0 try: result = self.ping_start(10) ping_num=ping_num+1 if int(result) >= 1: return True return False except Exception as e: print("the check error!") def ping_loop_end(self): try: result = self.ping_start(1) except Exception as e: return True # Press the green button in the gutter to run the script. if __name__ == '__main__': num = 0 ping_num1=0 sleep_time = time_time() llog = log() liyong = tele() liyong.login() sleep_time.wait_time() while num < 1200: try: print(num) current_time = datetime.datetime.now() str1 = "num="+str(num) llog.log_write("------------------------------------------------------------------------------------") llog.log_write("--------------------------------------start-----------------------------------------") llog.log_write(str1) llog.log_write("------------------------------------------------------------------------------------") current_time = datetime.datetime.now() # start di current_time = datetime.datetime.now() llog.log_write("------------------------start Ring Ring Ring------------------------"+str(current_time)) print("------------start di di di-----\n") #start di liyong.start_evcom() liyong.start_di() # di 300 s current_time = datetime.datetime.now() llog.log_write("------------------------Ring Ring Ring 5min------------------------"+str(current_time)) sleep_time.start_time() print("wait di di di 300s") #close di liyong.end_di() current_time = datetime.datetime.now() llog.log_write("------------------------end Ring Ring Ring------------------------"+str(current_time)) #wait time sleep_time.start_di_time() current_time = datetime.datetime.now() llog.log_write("------------------------into wait time 30 min------------------------"+str(current_time)) llog.log_write("-------------------------------------------------------------------------------------") llog.log_write("--------------------------------------end--------------------------------------------") llog.log_write("-------------------------------------------------------------------------------------") except Exception as e: print("try agin")
准备多线程,把程序上到多线上和重写telnet 类函数