Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Вывести Номер интерфейса и прописать маршрут с его использованием (http://forum.oszone.net/showthread.php?t=351929)

gadjet84 16-09-2022 15:07 2992522

Вывести Номер интерфейса и прописать маршрут с его использованием
 
Добрый день.
Помогите, пожалуйста, извлечь номер интерфейса из результата команды route print, если известно имя интерфейса.
Партнер предоставил exe-утилиту автонастройки VPN. Создается стандартное L2TP соединение встроенными средствами Windows для доступа до их локального хоста c ip 10.Х.Y.Z/32 с именем интерфейса, допустим, PARTNER VPN.
Однако в организации уже есть маршрутизация до другой сети 10/8 и доступ к хосту 10.Х.Y.Z/32 по этому L2TP соединению не работает, так как весь трафик идет по уже имеющемуся маршруту.

Выход - прописать маршрут до хоста явно, аля
route add 10.Х.Y.Z/32 0.0.0.0 IF X
где X - номер интерфейса PARTNER VPN из результата вывода route print, при подключенном PARTNER VPN.
После этого доступ к хосту 10.Х.Y.Z/32 работает.

Такие подключения были автоматом настроены на большом количестве машин и естественно номер интерфейса PARTNER VPN на каждой машине разный.
Отсюда вопрос - как написать BAT/CMD, который извлекал бы номер интерфейса, зная его имя, и следующей строкой прописывал бы маршрут, подставляя ранее извлеченное значение номера интерфейса?

6...2c ff 55 e4 35 0c ......Realtek PCIe GBE Family Controller
27...........................PARTNER VPN
1...........................Software Loopback Interface 1

route add 10.Х.Y.Z/32 0.0.0.0 IF <номер извлеченный из таблице выше>

P.S. Прошу оффтоперов, пожалуйста, не комментировать зачем всю сеть 10ю (/8) на той стороне заняли (это сеть за другим туннелем и не моя) и так далее. Вот такая реальность..

NickM 16-09-2022 15:20 2992523

Может что-нибудь типа такого?
Код:

@echo off
SetLocal EnableExtensions
for /f "tokens=1" %%i in ('route print ^| findstr /c:часть_имени_интерфейса 2^> nul') do set nroute=%%i
echo.%nroute:~0,2%


gadjet84 16-09-2022 15:58 2992524

Огромное спасибо.

конечный вариант в итоге такой получился:

@echo off
SetLocal EnableExtensions
for /f "tokens=1" %%i in ('route print ^| findstr /c:"PARTNER VPN" 2^> nul') do set nroute=%%i
SET AIF=%nroute:~0,2%
route -p add 10.X.Y.Z/32 0.0.0.0 if %AIF%


Время: 17:22.

Время: 17:22.
© OSzone.net 2001-