0
6 комментариев
  1. Версия Python (3.7) !!!
  2. Ваша операционная система (Windows)

Здравствуйте помогите с синтаксисом Python

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

Спасибо за помощь в написании скрипта stud_55@mail.ru

import telnetlib
import time

iprouter = ‘192.168.1.1’
user = ‘admin’
password = ‘admin’
loginOffice = ‘1234’
PassOffice = ‘12345’
VPNip =»192.168.16.1″
Subnet = «192.168.17.1»

tn = telnetlib.Telnet(iprouter)
#Автологин
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»)

#Настройка маршрутизации

tn.read_until(b»(config-if)> «, timeout=5)
tn.write(‘ip route 192.168.0.0 255.255.0.0 192.168.16.1 PPTP0 auto 100’.encode(‘ascii’) + b»\n»)

# Правило переадресации с VPN
tn.read_until(b»(config)> «, timeout=5)
tn.write(‘ip static tcp PPTP0 3389 192.168.17.1 3389 !Connection to server’.encode(‘ascii’) + b»\n»)

Пробелема №1 В первом блоке (#Настройка маршрутизации) вместо 192.168.16.1 вставить переменную VPNip

Пробелема №2 Во втором блоке (# Правило переадресации с VPN) вместо 192.168.17.1 вставить переменную Subnet и добавить к последнему октету +1 (192.168.17.1+1 получается 192.168.17.2)

Новый комментарий
WirinCROSS добавлен комментарий

вторая проблема:

Subnet = ‘.’.join(Subnet.split(‘.’)[:-1]) + str(int(Subnet.split(‘.’)[-1]) + 1)

Это я понимаю описание переменной, дело в том что переменная subnet нужна в не измененном виде так как она присутствует ряде правил а +1 к айпи адресу переменной subnet используется лишь в одном правиле.
может можно выразить измененый (subnet+1) через другую переменную

tn.write(‘ip static tcp PPTP0 3389 {0} 3389 !Connection to server’.format(Subnet).encode(‘ascii’) + b»n»)

stud_55@mail.ru добавлен комментарий

Можно: Subnet2 = ‘.’.join(Subnet.split(‘.’)[:-1]) + str(int(Subnet.split(‘.’)[-1]) + 1)

stud_55@mail.ru добавлен комментарий

tn.write(‘ip static tcp PPTP0 3389 {0} 3389 !Connection to server’.format(Subnet2).encode(‘ascii’) + b»n»)

WirinCROSS добавлен комментарий

import telnetlib
import time

iprouter = ‘192.168.1.1’
user = ‘admin’
password = ‘admin’
loginOffice = ‘1234’
PassOffice = ‘12345’
VPNip =»192.168.15.1″
Subnet = «192.168.10.15»
IPserv =’.’.join(Subnet.split(‘.’)[:-1]) + str(int(Subnet.split(‘.’)[-1]) + 1)

tn = telnetlib.Telnet(iprouter)
#Автологин
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»)
tn.read_until(b»(config)> «, timeout=5)
# Правило переадресации с VPN ip на IP компьютера
tn.write(‘ip static tcp PPTP0 3389 {0} 3389 !Connection to server’.format(IPserv).encode(‘ascii’) + b»n»)

При таком коде интерпритатор python отрабатывает без ошибок а в логах на оборудовании выходит ошибка
Command::Base: argument parse error.

WirinCROSS добавлен комментарий

результатом расчета ip адреса в переменной IPserv является 192.168.1016
как добавить еще один разделитель в виде точки

Добавить комментарий