Найти - Пользователи
Полная версия: Помогите решить 2 проблемы скрипта python
Начало » Python для новичков » Помогите решить 2 проблемы скрипта python
1
WiriNCROSS
Версия Python (3.8)
Операционная система (Windows)

Здравствуйте задача зайти на сетевое оборудование и создать новое подключение PPTP с заданными настройками

Решение подключится через телнет к оборудованию и прописать команды

telnet 192.168.1.1

Login: admin

Password:admin

(config)> interface PPTP0
Network::Interface::Repository: «PPTP0» interface created.

(config-if)> interface PPTP0
description Office
role misc
peer k4.office.ru
no ipv6cp
lcp echo 30 3
ipcp default-route
ipcp name-servers
ipcp dns-routes
ccp
security-level public
authentication identity 1234
authentication password 12345
encryption mppe
ip dhcp client dns-routes
ip dhcp client name-servers
ip global 16383
ip tcp adjust-mss pmtu
connect
up

Причем в консоль команды с настройками подключения можно вводить сразу всем блоком в python у меня не получилось это сделать от сюда вытекает первая проблема

Как в код вставить сразу весь блок команд а не выполнять их по одной

большое спасибо за помощь в создании скрипта stud_55@mail.ru
 import telnetlib
import time
ip = 192.168.1.1
user = admin
password = admin
loginOffice = 1234
PassOffice = 12345
tn = telnetlib.Telnet(ip)
#Автологин
tn.read_until(b»Login: «, timeout=5)
tn.write(user.encode(ascii) + b»\n»)
tn.read_until(b»Password: «, timeout=5)
tn.write(password.encode(ascii) + b»\n»)
#Создание PPTP Подключения Офис
tn.read_until(b»(config)> «, timeout=5)
tn.write(interface PPTP0.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(description Office
role misc
peer k4.office.ru
no ipv6cp
lcp echo 30 3
ipcp default-route
ipcp name-servers
ipcp dns-routes
ccp
security-level public
authentication identity 1234
authentication password 12345
encryption mppe
ip dhcp client dns-routes
ip dhcp client name-servers
ip global 16383
ip tcp adjust-mss pmtu
connect
up.encode(ascii) + b»\n»)

этот скрипт не работает
 import telnetlib
import time
ip = 192.168.1.1
user = admin
password = admin
loginOffice = 1234
PassOffice = 12345
tn = telnetlib.Telnet(ip)
#Автологин
tn.read_until(b»Login: «, timeout=5)
tn.write(user.encode(ascii) + b»\n»)
tn.read_until(b»Password: «, timeout=5)
tn.write(password.encode(ascii) + b»\n»)
#Создание PPTP Подключения Офис
tn.read_until(b»(config)> «, timeout=5)
tn.write(interface PPTP0.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(description Office role misc peer k4.office.ru no ipv6cp lcp echo ipcp default-route ipcp name-servers ipcp dns-routes ccp security-level public authentication identity loginOffice authentication password PassOffice.encode(ascii) + b»\n»)


если записывать в одну строку тоже не работает

вторая проблема как задать 1234 в виде переменой loginOffice в authentication identity и 12345 в переменную PassOffice authentication password
 import telnetlib
import time
ip = 192.168.1.1
user = admin
password = admin
loginOffice = 1234
PassOffice = 12345
tn = telnetlib.Telnet(ip)
#Автологин
tn.read_until(b»Login: «, timeout=5)
tn.write(user.encode(ascii) + b»\n»)
tn.read_until(b»Password: «, timeout=5)
tn.write(password.encode(ascii) + b»\n»)
#Создание PPTP Подключения Офис
tn.read_until(b»(config)> «, timeout=5)
tn.write(interface PPTP0.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(description Office.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(role misc.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(peer k4.office.ru.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(no ipv6cp.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(lcp echo 30 3.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ipcp default-route.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ipcp name-servers.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ipcp dns-routes.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ccp.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(security-level public.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(authentication identity loginOffice.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(authentication password PassOffice.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(encryption mppe.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ip dhcp client dns-routes.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ip dhcp client name-servers.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ip global 16383.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(ip tcp adjust-mss pmtu.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(connect.encode(ascii) + b»\n»)
tn.read_until(b»(config-if)> «, timeout=5)
tn.write(up.encode(ascii) + b»\n»)

при таком написании команды отрабатываются корректно только в строке

tn.write(‘authentication identity loginOffice’.encode(‘ascii’) + b»\n»)

tn.write(‘authentication password PassOffice’.encode(‘ascii’) + b»\n»)

loginOffice и PassOffice работают не как переменные а как текст
PEHDOM
WiriNCROSS
при таком написании команды отрабатываются корректно только в строке

tn.write(‘authentication identity loginOffice’.encode(‘ascii’) + b»\n»)

tn.write(‘authentication password PassOffice’.encode(‘ascii’) + b»\n»)

loginOffice и PassOffice работают не как переменные а как текст

ну дык вы передаете их как текст, как оно дожно работать? передавайте как переменную если хотите чтобы они обрабатывались как переменные.
 PassOffice = 12345
print('authentication password {}'.format(PassOffice).encode('ascii'))
>>> 
b'authentication password 12345'
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB