Задача такая: при подключении к windows vpn надо выловить новое подключение и сделать через него роут на левый ip-шник
Условия: windows! vpn выдает произвольный адрес из сети 192.168.6.0/24
Доп. условие: скрипт должен удалять свое же подключение. Тут легче - ip уникальный.
В принципе, скрипт приурочен к изучению python (отличный язык, имхо)
#by alex. 2014
#-*- coding: cp1251 -*-
import codecs,sys
from os import _exit
from subprocess import check_output
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf
route_print=check_output("route print")
routes=route_print.split("\n")
if "192.168.20.21" in route_print:
if "Y"==raw_input(u"Маршрут уже присутствует!\nХотите удалить?Y/N:").upper():
check_output("route delete 192.168.20.21")
_exit(0)
resultroute=[]
for i in routes:
if "255.255.255.255" in i and "192.168.6" in i:
resultroute=i.split()
if len(resultroute)==0:
raw_input(u"Не обнаружено подключение! Нажмите ввод для выхода")
_exit(1)
try:
check_output("route add 192.168.20.21 mask 255.255.255.255 " + resultroute[3])
except:
raw_input(u"Маршрут не применен!\nНажмите ВВОД для выхода")
raise
raw_input(u"Маршрут применен. Нажмите ввод для выхода")
Условия: windows! vpn выдает произвольный адрес из сети 192.168.6.0/24
Доп. условие: скрипт должен удалять свое же подключение. Тут легче - ip уникальный.
В принципе, скрипт приурочен к изучению python (отличный язык, имхо)
#by alex. 2014
#-*- coding: cp1251 -*-
import codecs,sys
from os import _exit
from subprocess import check_output
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf
route_print=check_output("route print")
routes=route_print.split("\n")
if "192.168.20.21" in route_print:
if "Y"==raw_input(u"Маршрут уже присутствует!\nХотите удалить?Y/N:").upper():
check_output("route delete 192.168.20.21")
_exit(0)
resultroute=[]
for i in routes:
if "255.255.255.255" in i and "192.168.6" in i:
resultroute=i.split()
if len(resultroute)==0:
raw_input(u"Не обнаружено подключение! Нажмите ввод для выхода")
_exit(1)
try:
check_output("route add 192.168.20.21 mask 255.255.255.255 " + resultroute[3])
except:
raw_input(u"Маршрут не применен!\nНажмите ВВОД для выхода")
raise
raw_input(u"Маршрут применен. Нажмите ввод для выхода")