Я работаю над сценарием для извлечения настроек из устройств Cisco в GNS3. Скрипт должен проходить по текстовому файлу и разделять IP и порт из каждой строки на переменные. Затем эти переменные подаются в соединение te lnet в качестве параметров IP и порта Telnetlib
.
import telnetlib
#Open file with list of switches
f = open ("C:\ProgramData\ports.txt")
#Telnet to each switch and configure it
for line in f:
linePort = line[10:]
lineIP = line[:-6]
print "Getting running-config " + lineIP + " " + linePort
tn = telnetlib.Telnet(lineIP,linePort)
Однако использование переменных всегда приводит к выдаче ошибки (см. Ниже), но если Я жестко закодирую те же значения, что могу создать соединение без проблем. Поскольку он работает с жестко закодированным значением, я попытался принудительно задать строковый тип с str()
для двух переменных, но это не изменило результат, и все равно выдает следующую ошибку:
C:\Users\SomeUser>python %userprofile%\desktop\config.py
Getting running-config 127.0.0.1 5000
Traceback (most recent call last):
File "C:\Users\Michael\desktop\config.py", line 11, in <module>
tn = telnetlib.Telnet(lineIP,linePort)
File "C:\python27amd64\lib\telnetlib.py", line 211, in __init__
self.open(host, port, timeout)
File "C:\python27amd64\lib\telnetlib.py", line 227, in open
self.sock = socket.create_connection((host, port), timeout)
File "C:\python27amd64\lib\socket.py", line 557, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno 10109] getaddrinfo failed
выброшено socket.gaierrr: [Errno 10109] getaddrinfo failed
, которое я пытался изучить, но не смог найти разрешение, которое мне подходит. Учитывая, что этот процесс должен быть автоматизирован и в oop жизненно важно, чтобы он работал с переменной. Поэтому любая помощь, которую вы все могли бы оказать, была бы очень признательна.