09.12.2015

Yet another RouterOS script

Скрипт ищет интерфейс sstp клиента, имя которого содержит в себе строку video, копирует имя интерфейса, имя пользователя и пароль для подключения, а так же адрес vpn сервера. Удаляет упоминание об этом интерфейсе в настройках OSPF (т.к. после удаления появится интерфейс unknown, а без удаления интерфейса новый не создастся - имена одинаковые), создает нешифрованное соединение pptp с аналогичными настройками и вписывает его в параметры OSPF.

#!Ищет sstp-интерфейс с именем, содержащим video
#! копирует его настройки, убирает номер порта и
#! создает pptp интерфейс с подобными настройками
#! Copyright Dmitry Bubnov http://bubnovd.net

/interface sstp-client
:local name [get [find name~"video"] name]
:local srv [get [find name~"video"] connect-to]
:local conto [:pick $srv 0 ([:len $srv]-4)]
:local user [get [find name~"video"] user]
:local pwd [get [find name~"video"] password]
/routing ospf interface remove [find interface=$name]
remove $name

/interface pptp-client add connect-to=$conto user=$user password=$pwd name=$name allow=mschap2 disabled=no profile=default
/routing ospf interface add interface=$name cost=9 network-type=point-to-point 

Он же в Python для пакетного изменения:

#!/usr/bin/env python

from RosAPI import Core


mas = []
with open("list.txt") as f:
mas = f.read().splitlines()

for i in range(len(mas)):
try:
a = Core(mas[i])

except:
print "No Connection"
else:
a.login("user", "password")
print i
a.talk(["/system/script/add", "=name=" + "temp", "=source=" + '#! Copyright Dmitry Bubnov http://bubnovd.net\r\n/interface sstp-client\r\n:local name [get [find name~\"video\"] name]\r\n:local srv [get [find name~\"video\"] connect-to]\r\n:local conto [:pick $srv 0 ([:len $srv]-4)]\r\n:local user [get [find name~\"video\"] user]\r\n:local pwd [get [find name~\"video\"] password]\r\n/routing ospf interface remove [find interface=$name]\r\nremove $name\r\n/interface pptp-client add connect-to=$conto user=$user password=$pwd name=$name allow=mschap2 disabled=no profile=default\r\n/routing ospf interface add interface=$name cost=9 network-type=point-to-point'])
a.talk(["/system/script/run", "=.id=" + "temp"])
a.talk(["/system/script/remove", "=.id=" + "temp"])

print mas[i]  


Комментариев нет:

Отправить комментарий