2017-04-25 11 views
0

私は、Pythonで単純なスクリプトを書くと、複数のciscoスイッチをtelnetし、vlansを追加しています。私はUNET LABSまたは最新のEVE-NGでスクリプトをテストしています。私はFORループを使用して複数のスイッチにtelnetで接続して呼び出すと は は、TN = telnetlib.Telnetループの中で、それだけでここPython 2.7 telnetlib For Loop

10.1.1.7すなわち変数HOSTの最後の値にtelnet接続してから(HOST) は私のコード、

です
#!/usr/bin/env python 

import getpass 
import sys 
import telnetlib 

user = raw_input("Enter your telnet username: ") 
password = getpass.getpass() 


for h in range (2,8): 
    print "Telnet to host" + str(h) 
    HOST = "10.1.1." + str(h) 
    tn = telnetlib.Telnet(HOST) 

    tn.read_until("Username: ") 
    tn.write(user + "\n") 
    if password: 
     tn.read_until("Password: ") 
     tn.write(password + "\n") 

    tn.write("conf t\n") 

    for n in range (10,20): 
     tn.write("vlan " + str(n) + "\n") 
+0

ただ貼り付けると、何も起こりませんここに存在していない、このホストとして2'ホストする出力にあなたのコードの結果を実行している 'Telnetをコピーし、それは明らかにホスト2から始まる、あなたの実行の出力を投稿することができますまたは奇妙な動作をしているテルネットだけで、印刷された出力は大丈夫ですか? –

答えて

0

次のコードは私のために働いています。すべてのIPをシートに入れます(IP_test.txt)。

import getpass 
    import sys 
    import telnetlib 
    user = "YOURUSER" 
    password = "YOURPASSWORD" 
    with open('IP_test.txt') as file: 
      for HOST in file: 
        tn = telnetlib.Telnet(HOST) 
        tn.read_until("login: ") 
        tn.write(user + "\n") 
        if password: 
            tn.read_until("Password: ") 
            tn.write(password + "\n") 
            tn.write("Command1\n") 
            tn.write("Command2\n") 
            print(tn.read_all())