Conexão de Roteadores CISCO
Publicado por Rafael Iguatemy (última atualização em 21/05/2012)
[ Hits: 9.269 ]
Homepage: http://rafaeliguatemy.com.br
Este script testa a conexão de uma lista de ips, conecta via telnet todos os que estão disponíveis, aplica e salva em arquivos separados as configurações necessárias dos roteadores. Muito útil para ambientes Wan com múltiplos roteadores.
#!/usr/bin/python #-*-coding:iso-8859-1 -*- ############################################################################################################# ############################################################################################################# ###-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------### ### Script: Conn.py ### ### Versão: 1.0 Data:08/05/2010 ### ### Autor: Rafael Iguatemy dos Santos - rafael.dsantos@bol.com.br ### ###-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------### ### Este script testa a conexão de uma lista de ips, conecta via telnet todos os que estão disponíveis, ### ### aplica e salva em arquivos separados as configurações necessárias em nos roteadores ### ############################################################################################################# ############################################################################################################# import os import telnetlib def pingar(ips): ''' Testar a Conectividade e separar os IPs que estão conectados ''' ipok = [] ipfora = [] for ip in ips: ping = os.popen('ping -c 10 %s' % ip).read() print ping print 75*"-" if ('64 bytes from') in ping: ipok.append(ip) else: ipfora.append(ip) return ipok def verifica_ip(ip): '''Verifica se o ip e valido e separa os octetos ''' oct1,oct2,oct3,oct4 = "","","","" for i in range(len(ip)): if ip[i] != '.': oct1 += ip[i] else: ipr1 = ip[i+1:] break for j in range(len(ipr1)): if ipr1[j] != '.': oct2 += ipr1[j] else: ipr2 = ipr1[j+1:] break for w in range(len(ipr2)): if ipr2[w] != '.': oct3 += ipr2[w] else: oct4 = ipr2[w+1:] break if int(oct1) == 0 or int(oct1)>255 or int(oct2)>255 or int(oct3)>255 or int(oct1)>255 or len(ip)>15 or ip.count('.')!=3: print "ip incorreto" else: ips = oct1+'.'+oct2+'.'+oct3+'.'+oct4 return ips user = 'xxxxx' password = '********' ip = '' ips = [] # Quando o ip 1.0.0.0 for digitado, o looping da entrada de dados terminará while ip != '1.0.0.0': ip = raw_input('Entre com IP / Digite 1.0.0.0 para sair') x = verifica_ip(ip) ips.append(x) ips.remove('1.0.0.0') ipsok = pingar(ips) print ipsok for HOST in ipsok: #Autenticação no roteador via Telnet tn = telnetlib.Telnet(HOST) tn.read_until("Username: ", 3) tn.write(user + "\r\n") tn.read_until("Password: ", 3) tn.write(password + "\r\n") #Comandos da IOS Cisco (Aqui que customizamos o script para qualquer configuração feita no roteador) tn.write("term length 0"+ "\r\n") tn.write("sh ip bgp sum" + "\r\n") tn.write("logout" + "\r\n") # str_all = tn.read_all() tn.close() try: # Teremos de saída 1 arquivo para cada roteador arq = "arq_"+HOST+".txt" f = open(arq, "w") try: f.write(str_all) finally: f.close except IOError: pass
Jogo da forca criado em Python
Dicionário Ingles de expressões.
Virus, trojan, sei lá o que é isso, PARTE II
Script em Python com várias funções matemáticas [iniciante]
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (11)
Será que eu deveria apreender C/C++ para desenvolver para Linux? (4)