Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - определить основной шлюз для выбраннго адаптера

Ответить
Настройки темы
CMD/BAT - определить основной шлюз для выбраннго адаптера

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Несколько сетевых адаптеров, настройки получают по dhcp.
Нужно брать текущий шлюз для одного из адаптеров, и использовать его дальше в скрипте.
Примерно так:
Код: Выделить весь код
Получить шлюз для "ethernet адаптер1"
route add 0.0.0.0 mask 0.0.0.0 'шлюз для "ethernet адаптер1"'

Отправлено: 22:45, 22-03-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Откуда ж нам знать, по каким критериям Вы выбираете потребный. Озвучьте.

Отправлено: 01:55, 07-04-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Можно по названию сетевого подключения или просто первый, второй или третий шлюз. Они всегда выдаются в одном порядке.
Конечно лучше по названию сетевого подключения.

Отправлено: 06:28, 07-04-2017 | #12


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата neth1:
по названию сетевого подключения или просто первый »
Код: Выделить весь код
@echo off
set "na1="
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^(NetConnectionStatus^="2"^) get NetConnectionID /value^|find "="') do (
 set "na=%%a"
 if not defined na1 set "na1=%%a"
)
echo Первое имя сетевого подключения    - %na1%
echo Последнее имя сетевого подключения - %na%
pause>nul
надеюсь разберетесь как подставить в поиск парсера

И да, это если все всегда включено и подключено каждый раз идентично, если нет, понятно что имя первого займет другое, если сегодня первый отдыхает.

Отправлено: 15:49, 07-04-2017 | #13


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема не в том, чтобы спарсить сетевые подключения, а в том чтобы поставить нужное в поиск парсера.
У меня слишком низкий скилл, знаю что хочу сделать, но не вижу реализацию

Отправлено: 22:42, 07-04-2017 | #14


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Если поизвращаться с парсингом ipconfig /all, то вывести нужный шлюз, например первого подключенного адаптера можно так:
Код: Выделить весь код
@echo off
set "na="& set "shl="
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^(NetConnectionStatus^="2"^) get NetConnectionID /value^|find "="') do if not defined na set "na=%%a"
for /f "delims=[]" %%a in ('ipconfig /all^|find /n "%na%"') do set "ns=%%a"
for /f "tokens=2 delims=:" %%a in ('ipconfig /all^|more +%ns%^|find "Основной шлюз"') do if not defined shl set "shl=%%a"
echo %shl: =%
pause

Отправлено: 01:18, 08-04-2017 | #15


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Конечно так было бы повеселее, но видимо на вашей системе netsh не работает
Код: Выделить весь код
@echo off
for /f "tokens=2 delims=:" %%a in ('netsh interface ip show addresses name^="Имя подключения"^|find "Основной шлюз"') do set "shl=%%a"
echo %shl: =%
pause

Отправлено: 01:33, 08-04-2017 | #16


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


На моей системе первый вариант также не работает:
Код: Выделить весь код
Не удается получить доступ к файлу C:\Documents and Settings\comp_name\+
Почему может не работать netsh?
Он есть.
Код: Выделить весь код
netsh>help

Применимы следующие команды:

Команды в этом контексте:
..             - Переход на один контекстный уровень вверх.
?              - Отображение списка команд.
abort          - Отмена изменений, сделанных в автономном режиме.
add            - Добавление элемента конфигурации в список элементов.
alias          - Добавление псевдонима.
bridge         - Изменения в контексте 'netsh bridge'.
bye            - Выход из программы.
commit         - Применение изменений, сделанных в автономном режиме.
delete         - Удаление элемента конфигурации из списка элементов.
diag           - Изменения в контексте 'netsh diag'.
dump           - Отображение сценария конфигурации.
exec           - Запуск файла сценария.
exit           - Выход из программы.
firewall       - Изменения в контексте 'netsh firewall'.
help           - Отображение списка команд.
interface      - Изменения в контексте 'netsh interface'.
lan            - Изменения в контексте 'netsh lan'.
nap            - Изменения в контексте 'netsh nap'.
offline        - Переход в автономный режим.
online         - Переход в оперативный режим.
popd           - Получение контекста из стека.
pushd          - Помещение текущего контекста в стек.
quit           - Выход из программы.
ras            - Изменения в контексте 'netsh ras'.
routing        - Изменения в контексте 'netsh routing'.
set            - Обновление параметров конфигурации.
show           - Отображение информации.
unalias        - Удаление псевдонима.
winsock        - Изменения в контексте 'netsh winsock'.

Доступны следующие дочерние контексты:
 bridge diag firewall interface lan nap ras routing winsock
Цитата alpap:
Конечно так было бы повеселее, но видимо на вашей системе netsh не работает
Код: Выделить весь код
@echo off
for /f "tokens=2 delims=:" %%a in ('netsh interface ip show addresses name^="Имя подключения"^|find "Основной шлюз"') do set "shl=%%a"
echo %shl: =%
pause »
Это отрабатывает, но "shl" пустая.

Последний раз редактировалось neth1, 08-04-2017 в 07:24.


Отправлено: 07:17, 08-04-2017 | #17


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата neth1:
Имя подключения »
Во-первых сюда написать имя, например: "Подключение по локальной сети", или какое там у вас
Во-вторых, значения шлюза может и не быть на определенном адаптере

наберите в командной строке: ipconfig /all>"C:\file.txt" и посмотрите какие имена сетевых подключений, у кого есть Основной шлюз и какой у кого нет, скопируйте имя подключения для которого надо выводить значение шлюза, если оно есть как таковое, конечно

код сохраняйте в кодировке 866!

Отправлено: 17:56, 08-04-2017 | #18


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата alpap:
Во-первых сюда написать имя, например: "Подключение по локальной сети", или какое там у вас
Во-вторых, значения шлюза может и не быть на определенном адаптере
наберите в командной строке: ipconfig /all>"C:\file.txt" и посмотрите какие имена сетевых подключений, у кого есть Основной шлюз и какой у кого нет, скопируйте имя подключения для которого надо выводить значение шлюза, если оно есть как таковое, конечно
код сохраняйте в кодировке 866! »
Именно так все и делал.
Код: Выделить весь код
C:\test.bat
 =
Для продолжения нажмите любую клавишу . . .

Отправлено: 19:48, 08-04-2017 | #19


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата neth1:
Именно так все и делал »
Давайте чтобы я не ругался, показывать то что вы делали

1. Вывод этого: ipconfig /all>"C:\file.txt" (можете затереть цифры значений или изменить)
2. этот код
Код: Выделить весь код
@echo on
for /f "tokens=2 delims=:" %%a in ('netsh interface ip show addresses name^="Имя подключения"^|find "Основной шлюз"') do set "shl=%%a"
echo %shl: =%
pause
где вместо Имя подключения стоит именно то что у вас, вернее именно тот код как есть который вы запускаете
3. скриншот окна cmd после запуска

Отправлено: 01:12, 09-04-2017 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - определить основной шлюз для выбраннго адаптера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Основной шлюз aus Windows Server 2008/2008 R2 15 03-07-2013 13:37
Разное - Основной шлюз :S apk.apocalypses Сетевые технологии 2 22-02-2012 14:36
VPN S-T-S как основной шлюз Tele2 ISA Server / Microsoft Forefront TMG 5 19-08-2010 15:30
Основной шлюз wik7000 Microsoft Windows NT/2000/2003 11 17-11-2006 13:19




 
Переход