Escrito por coder el 02 de septiembre de 2010 en Informática | Hits: 1512
Llevaba un tiempo algo harto de los cambios de velocidad, principalmente de bajada, que Jazztel me regalaba. La conexión actual de Fluzo.org es la de 20Mbps con AnexoM activado, lo cual debería dar un máximo de unos 1500Kbps de subida y 15000Kbps de bajada. Al estar algo lejos del nodo, está claro que no voy a sacar en la vida los teóricos topes máximos, pero de ahí a despertarme y verme con una bajada de 3Mbps, hay un trecho.
Por eso ayer me hice este scriptito en Python, haciendo uso de telnetlib. Sirve para consultar el link de ADSL2+ el router mencionado, el Comtrend HG536+ de Jazztel. ¿Por qué le cambié el firmware al de NetComm australiano? Pues porque, al menos en su momento, el firmware estándar del HG536+ no soportaba tráfico VPN, con lo que era imposible su uso estando de guardia de Sistemas, por ejemplo.
Bueno, al turrón: el script necesita la IP del router, el usuario, el password y un valor que sirve como umbral mínimo de valor de Download. En mi caso he puesto 9000 (Kbps). Si el script no puede conectar, saldrá con exit(1) y el error correspondiente. Si la conexión tiene éxito, una vez dentro del router ejecutará el comando pertinente ("adsl info") y trabajará con el resultado.
Es algo muy básico, pero cumple la función que yo espero de él. Se podría hacer un print siempre de los valores y así graficar, pero eso, que también es facilito, se lo dejo a ustedes.
#!/usr/bin/python
import getpass
import sys, socket
from telnetlib import Telnet
host = "serverIP"
user = "username"
passwd = "password"
value = 9000
try:
srv = Telnet(host)
except socket.gaierror:
print "Error while connecting to "+host
sys.exit(1)
#srv.set_debuglevel(1)
srv.read_until("Login: ")
srv.write(user + "\n")
srv.read_until("Password: ")
srv.write(passwd + "\n")
srv.write("adsl info\n")
adsl = srv.read_until("Kbps\r\n")
srv.write("logout\n")
srv.close()
data = adsl.split("=", 1)[1].split(' ')
if int(data[6]) < value:
print "Upload: %s | Download: %s" % (data[1], data[6])
sys.exit(1)
else:
sys.exit(0)
Profit!
« Muere Carlos Mendo
[SUN T5420] Puertos a habilitar si quieres acceder a la iLOM detrás de un firewall »