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 кодировке!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.