Здравствуйте, DMD, Вы писали:
DMD>Здравствуйте,
DMD>Ребят, подскажите — куда смотреть: необходимо в скрипте получить адрес VPN соединения, чтобы затем установить нужный маршрут. Как это можно автоматизировать? Хоть куда посмотреть-проконсультироваться?
DMD>ОС — Windows XP, 7, 8/8.1
Отправные точки:
вывод ipconfig
команда FOR /F
Внимательно читаем вывод
cmd /?
for /?
set /?
В частности пусть винда русская, подключение называется MyVPN1
Тогда в выводе ipconfig будет что-нибудь вроде:
Адаптер PPP MyVPN1:
DNS-суффикс подключения . . . . . :
IPv4-адрес. . . . . . . . . . . . : 192.168.2.21
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз. . . . . . . . . :
Результирующий скрипт может выглядеть примерно так: (возможно потребуется подгонка под конкретную систему)
@echo off
setlocal enableextensions
setlocal enabledelayedexpansion
SET flag=0
SET vpnip=0
for /F "delims=: tokens=1,2" %%a IN ('ipconfig') DO (
rem ECHO *%%a*
IF "Адаптер PPP MyVPN1"=="%%a" (
rem ECHO flag on
SET flag=1
) ELSE (
IF " IPv4-адрес. . . . . . . . . . . . "=="%%a" (
rem ECHO "On IP"
IF !flag!==1 (
rem ECHO "On VPN"
SET vpnip=%%b
SET vpnip=!vpnip:~1!
GOTO found
)
)
)
)
GOTO notfound
:found
ECHO FOUND
ECHO !vpnip!
goto exit
:notfound
ECHO Not found!
goto exit
:exit
Внимание! Скрипт должен быть в DOS866 кодировке!
Здравствуйте, Pasha1st, Вы писали:
P>Здравствуйте, DMD, Вы писали:
DMD>>Здравствуйте,
DMD>>Ребят, подскажите — куда смотреть: необходимо в скрипте получить адрес VPN соединения, чтобы затем установить нужный маршрут. Как это можно автоматизировать? Хоть куда посмотреть-проконсультироваться?
DMD>>ОС — Windows XP, 7, 8/8.1
P>Отправные точки:
P>вывод ipconfig
P>команда FOR /F
P>Внимательно читаем вывод
P>cmd /?
P>for /?
P>set /?
P>В частности пусть винда русская, подключение называется MyVPN1
P>Тогда в выводе ipconfig будет что-нибудь вроде:
P>P>Адаптер PPP MyVPN1:
P> DNS-суффикс подключения . . . . . :
P> IPv4-адрес. . . . . . . . . . . . : 192.168.2.21
P> Маска подсети . . . . . . . . . . : 255.255.255.255
P> Основной шлюз. . . . . . . . . :
P>Результирующий скрипт может выглядеть примерно так: (возможно потребуется подгонка под конкретную систему)
P>P>@echo off
P>setlocal enableextensions
P>setlocal enabledelayedexpansion
P>SET flag=0
P>SET vpnip=0
P>for /F "delims=: tokens=1,2" %%a IN ('ipconfig') DO (
P>rem ECHO *%%a*
P> IF "Адаптер PPP MyVPN1"=="%%a" (
P>rem ECHO flag on
P> SET flag=1
P> ) ELSE (
P> IF " IPv4-адрес. . . . . . . . . . . . "=="%%a" (
P>rem ECHO "On IP"
P> IF !flag!==1 (
P>rem ECHO "On VPN"
P> SET vpnip=%%b
P> SET vpnip=!vpnip:~1!
P> GOTO found
P> )
P> )
P> )
P>)
P>GOTO notfound
P>:found
P>ECHO FOUND
P>ECHO !vpnip!
P>goto exit
P>:notfound
P>ECHO Not found!
P>goto exit
P>:exit
P>
P>Внимание! Скрипт должен быть в DOS866 кодировке!
Понятно. Спасибо большое. На bash-подобный синтаксис надеяться не приходится. )