2016-09-01 12 views
-1

У меня есть следующий код, который откроет файл .txt, содержащий IP-адреса, а затем подключится к устройству и захватит вывод команды, затем он распечатает вывод на файл и указать, что все работает.Как перебрать список IP-адресов, по одному на строку в Python

Я не могу заставить его проходить через ряд IP-адресов и возвращать выходные данные команд для нескольких устройств. Я получаю ошибку тайм-аута скрипта, когда я добавляю более одного IP-адреса в список .txt. Это подтверждается добавлением одного и того же адреса дважды, поэтому я знаю, что адреса хороши, по сравнению с тем, когда в файле находится только один адрес, и он работает без видимых на вид.

Я ищу путь к петле через 10 IP-адресов и запускать те же команды:

from __future__ import print_function 
from netmiko import ConnectHandler 

import sys 
import time 
import select 
import paramiko 
import re 
fd = open(r'C:\Users\NewdayTest.txt','w') 
old_stdout = sys.stdout 
sys.stdout = fd 
platform = 'cisco_ios' 
username = 'Username' 
password = 'Password' 

ip_add_file = open(r'C:\Users\\IPAddressList.txt','r') 

for host in ip_add_file: 
    device = ConnectHandler(device_type=platform, ip=host, username=username, password=password) 
    output = device.send_command('terminal length 0') 
    output = device.send_command('enable') 
    print('##############################################################\n') 
    print('...................CISCO COMMAND SHOW RUN OUTPUT......................\n') 
    output = device.send_command('sh run') 
    print(output) 
    print('##############################################################\n') 
    print('...................CISCO COMMAND SHOW IP INT BR OUTPUT......................\n') 
    output = device.send_command('sh ip int br') 
    print(output) 
    print('##############################################################\n') 

fd.close() 

ответ

0

Имейте в виду, что каждая строка будет новый IP-адреса.

И вы не пишете файл ciscoOutput, для этого вы можете использовать команду fd.write('text').

+0

Хорошо, что работает, но im возвращает ошибку, если у меня есть более одного IP-адреса в списке, поэтому я могу увидеть его переход в файл .txt, чтобы получить идеальный IP-адрес. Но как только я добавляю более одного IP-адреса, он терпит неудачу. Это не проблема IP, поскольку, когда я меняю IP-адрес, он собирает требуемую информацию. Так что, наверное, мой второстепенный вопрос заключается в том, как сделать этот цикл через список и выбрать следующий IP каждый раз. –

+0

Вы можете поделиться полученной вами ошибкой? – harshil9968

+0

Совместно с редактированием из-за длины ошибок, возвращаемых –