I am very happy with the tp-link load balancing router tl-r470t+ that multiplexes my adsl lines,although sometimes it gets stuck and does not provide dns access . For that reason I wrote a watchdog script for it that runs every minute via cron daemon . The script tries to resolve a dns record , and if it fails it reboots the rooter. Enjoy.
#!/usr/bin/env python
#By Thimios Katsoulis 2016-03
import sys
import telnetlib
import socket
import logging
HOST = "192.168.1.1" #your router ip address
user = "admin" # your administrator username here
password = "admin" # your normal password here
adminpassword = "admin" # your admin password here
logfile = "/var/log/check_router.txt" # change to your preferred location here
def checkDNS():
try:
ip = socket.gethostbyname('www.google.com')
print "Internet Connection is ok"
logging.info("Internet Connection is ok")
except:
logging.error("Internet Connection is not ok")
rebootRouter()
def rebootRouter():
logging.error( "Rebooting Router...")
tn = telnetlib.Telnet(HOST)
tn.read_until("Username:")
tn.write(user + "\r\n")
tn.read_until("Password:")
tn.write(password + "\r\n")
tn.write('enable\r\n')
tn.write( adminpassword + '\r\n')
tn.write('sys reboot\r\n')
tn.write('y\r\n')
tn.close()
if __name__ == '__main__':
logging.basicConfig(filename = logfile , level=logging.WARNING , format='%(asctime)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
checkDNS()