Получение в .bat/.cmd IP адреса вновь созданного VPN
От: DMD Россия  
Дата: 01.12.14 07:43
Оценка:
Здравствуйте,
Ребят, подскажите — куда смотреть: необходимо в скрипте получить адрес VPN соединения, чтобы затем установить нужный маршрут. Как это можно автоматизировать? Хоть куда посмотреть-проконсультироваться?

ОС — Windows XP, 7, 8/8.1

Спасибо.
vpn ip
Re: Получение в .bat/.cmd IP адреса вновь созданного VPN
От: Pasha1st  
Дата: 01.12.14 08:47
Оценка:
Здравствуйте, 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 кодировке!
Re[2]: Получение в .bat/.cmd IP адреса вновь созданного VPN
От: DMD Россия  
Дата: 01.12.14 09:04
Оценка:
Здравствуйте, 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-подобный синтаксис надеяться не приходится. )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.