2016-09-01 13 views
-1

IPアドレスを含む.txtファイルを開き、デバイスに接続してコマンド出力をキャプチャするコードを以下に示します。ファイルと状態がすべて動作することを示します。IPアドレスのリストをPythonで1行に1回ループする方法

一連のIPアドレスをループして、複数のデバイスのコマンド出力を返すことができません。 .txtリストに複数のIPを追加すると、スクリプトのタイムアウトに間違いがあります。これは、同じアドレスを2回追加することで証明されているので、アドレスが良好であることがわかります。ファイル内に1つのアドレスしかなくても、うまく動作しません。

私は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

私はリストに複数のIPアドレスがあるとエラーが返ってくるので、完璧なIPアドレスを取得するには.txtファイルに行くことができます。しかし、私は複数のIPを追加するとすぐに失敗します。それは私が必要な情報を収集するIPを変更すると、IPの問題ではありません。 私の二次的な質問は、このサイクルをリストを通してどのようにして毎回次のIPを選択するのかということでしょう。 –

+0

エラーを共有することはできますか? – harshil9968

+0

エラーの長さが返されたために編集中で共有されました –

関連する問題