![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут |
|
CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут
|
Пользователь Сообщения: 88 |
У меня есть пользователи который до сих пор используют Windows XP, для них я нашел/переделал код ниже, потому что в тот момент у меня небыло машина с Windows XP на руках, я тестил на Windows Server 2003, код работал без вопросов, теперь при попытке воспроизвести тот же код на машине Windows XP, к сожалению код не работает. Помогите пожалуйста ешить проблему.
Объясняю зачем мне нужен этот код, шлюз каждый раз меняется (динамический) и мне сначало нужно узнать какой IP будет у шлюза перед тем как создать маршрут. @rasdial VPN username password @setlocal @for /f "tokens=1-2 delims=:" %%i in ('ipconfig ^| find "IP Address" ^| find "172.23"') do set GETIP=%%j @route add 172.30.255.0 mask 255.255.255.0 %GetIp% @endlocal Gateway/Шлюз: один случайный IP из данного диапазона 172.23.241.2-172.23.241.254 Спасибо. *Не забываем что речь идет о Windows XP, в Windows 7 и выше это решается горазда легче. |
|
Отправлено: 10:28, 12-03-2015 |
Пользователь Сообщения: 88
|
Профиль | Отправить PM | Цитировать Я только что поднял образ "Windows XP Professional SP3 x86 RU VL" на VMware всё работает отлично. Как я говорил, наверное система с которой я работал вчера не работало правельно. Уже походу дело когда буду поднимать VPN на компы клиентов посмотрю что получется. Спасибо.
|
Отправлено: 10:31, 13-03-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 717
|
Профиль | Отправить PM | Цитировать Есть такой батник
REM создает в текущем каталоге готовый BAT-файл для REM переноса текущих IP настроек на другой компьютер REM и файл с именем компьютера CLS echo on ipconfig | find "IPv4" > temp.txt for /f "delims=: tokens=1-26" %%C in (temp.txt) do (echo %%D > ip.txt) ipconfig | find "Маска" > temp.txt for /f "delims=: tokens=1-26" %%C in (temp.txt) do (echo %%D > mask.txt) ipconfig | find "шлюз" > temp.txt for /f "delims=: tokens=1-26" %%C in (temp.txt) do (echo %%D > gate.txt) Вот на последнем этапе в файле temp.txt Основной шлюз. . . . . . . . . : 192.168.1.1 Основной шлюз. . . . . . . . . : Основной шлюз. . . . . . . . . : А в gate.txt записывается Режим вывода команд на экран (ECHO) отключен Не могу понять, в чем дело. |
Отправлено: 00:01, 03-04-2015 | #12 |
Ветеран Сообщения: 1759
|
mariolast, Лучше через wmic:
@echo off setlocal set "wmic=wmic nicconfig where ipenabled='true' get DefaultIPGateway,IPAddress,IPSubnet /value" for /f %%i in (' "%wmic%" ') do 1>nul set "%%i" for /f "tokens=1 delims={}," %%i in ("%DefaultIPGateway%") do echo gateway: %%~i for /f "tokens=1 delims={}," %%i in ("%IPAddress%") do echo ipaddress: %%~i for /f "tokens=1 delims={}," %%i in ("%IPSubnet%") do echo ipsubnet: %%~i |
Отправлено: 01:30, 03-04-2015 | #13 |
Ветеран Сообщения: 717
|
Профиль | Отправить PM | Цитировать Аесли надо в текстовый файл писать?
Задача стоит в следующем. Создать в текущем каталоге готовый BAT-файл для переноса текущих IP настроек на другой компьютер и файл с именем компьютера Содержание батника CLS echo off ipconfig | find "IPv4" > temp.txt for /f "delims=: tokens=1-26" %%C in (temp.txt) do (echo %%D > ip.txt) ipconfig | find "Маска" > temp.txt for /f "delims=: tokens=1-26" %%C in (temp.txt) do (echo %%D > mask.txt) ipconfig | find "шлюз" > temp.txt for /f "delims=: tokens=1-26" %%C in (temp.txt) do (echo %%D > gate.txt) pause vbs_getIP.vbs del temp.txt del gate.txt del mask.txt del ip.txt del setip.txt Set ADODBStream = CreateObject("ADODB.Stream") ADODBStream.Type = 2 ADODBStream.Charset = "UTF-8" ADODBStream.Open() ADODBStream.LoadFromFile("ip.txt") Text = ADODBStream.ReadText() ADODBStream.Close() dim str str = Cstr(Text) str1="" for i=1 to len(str) i1=mid(str,i,1) iC=Asc(i1) if (iC>45 and iC<58) then str1=str1+i1 end if next varIP=str1 REM *************************************************** REM * Забираем маску из файла * REM *************************************************** Set ADODBStream = CreateObject("ADODB.Stream") ADODBStream.Type = 2 ADODBStream.Charset = "UTF-8" ADODBStream.Open() ADODBStream.LoadFromFile("mask.txt") Text = ADODBStream.ReadText() ADODBStream.Close() str = Cstr(Text) str1="" for i=1 to len(str) i1=mid(str,i,1) iC=Asc(i1) if (iC>45 and iC<58) then str1=str1+i1 end if next varMASK=str1 REM *************************************************** REM * Забираем шлюз из файла * REM *************************************************** Set ADODBStream = CreateObject("ADODB.Stream") ADODBStream.Type = 2 ADODBStream.Charset = "UTF-8" ADODBStream.Open() ADODBStream.LoadFromFile("gate.txt") Text = ADODBStream.ReadText() ADODBStream.Close() str = Cstr(Text) str1="" for i=1 to len(str) i1=mid(str,i,1) iC=Asc(i1) if (iC>45 and iC<58) then str1=str1+i1 end if next varGATE=str1 REM *************************************************** REM * Формируем текст батника для NETSH * REM *************************************************** str1 = "netsh interface ip set address name="+chr(34)+"Подключение по локальной сети"+chr(34)+ " static " + varIP + " " + varMASK + " " + varGATE+" 1" REM ***************************************************** REM * пишем строку для запуска батника в файл * REM ***************************************************** msgbox str1,,"Кошки правят!" test = "setip.bat" Set objFSO = CreateObject("Scripting.FileSystemObject") Set TestTeam = objFSO.OpenTextFile(test, 2, True) Set File = objFSO.GetFile(test) TestTeam.WriteLine str1 TestTeam.close |
Отправлено: 07:48, 03-04-2015 | #14 |
Ветеран Сообщения: 1759
|
mariolast, Перенести настройки можно, создав сценарий конфигурации ipv4:
И запустить его: Не знаю, как это будет выглядеть на разных машинах Цитата mariolast:
@echo off setlocal set "wmic=wmic nicconfig where ipenabled='true' get DefaultIPGateway,IPAddress,IPSubnet /value" for /f %%i in (' "%wmic%" ') do 1>nul set "%%i" 1>file.txt ( for /f "tokens=1 delims={}," %%i in ("%DefaultIPGateway%") do echo gateway: %%~i for /f "tokens=1 delims={}," %%i in ("%IPAddress%") do echo ipaddress: %%~i for /f "tokens=1 delims={}," %%i in ("%IPSubnet%") do echo ipsubnet: %%~i ) |
|
Отправлено: 10:02, 03-04-2015 | #15 |
Пользователь Сообщения: 88
|
Профиль | Отправить PM | Цитировать Добрый день всем, возвращаюсь к давней проблеме.
Код ниже работает отлично на все англоязычные всерий Windows. А вот с на руских через раз или вовсе не работает. Что можно изминить чтобы кода рабтол на все версий ОС не важно какой язык? Проблема в том что код работает на половину, он создает подключение но маршрут не может добавить, не понимает команду: @route add 172.23.250.250 mask 255.255.255.255 %GetIp% Помогите разобратся. *В 99% из случай я добавляю этот код на машинах с Windows XP. |
Отправлено: 11:12, 31-03-2017 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - как узнать какой USB-порт 2.0, а какой 1.1 ? | Stivensson | Материнские платы и память | 7 | 18-09-2014 00:57 | |
Прочее - Как узнать IP-адрес шлюза в WiFi сети зная только MAC-адрес AP | navigator19 | Сетевые технологии | 4 | 16-03-2014 12:24 | |
[решено] Надо ли удалять старую краску перед тем как нанести грунтовку? | teapot08 | Разгон, охлаждение и моддинг | 3 | 07-01-2013 16:43 | |
ожидание 3-5 минут перед тем как начать загружаться с CD/HDD | Intergo | Непонятные проблемы с Железом | 10 | 19-02-2010 15:19 | |
Показ надписи перед тем как перейти по ссылке на какую то страницу | dima1981 | Вебмастеру | 12 | 14-11-2008 14:26 |
|