CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Аватара пользователя
eXtremer

CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение eXtremer »

У меня есть пользователи который до сих пор используют 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

Host: 172.30.255.22

Gateway/Шлюз: один случайный IP из данного диапазона 172.23.241.2-172.23.241.254



Спасибо.



*Не забываем что речь идет о Windows XP, в Windows 7 и выше это решается горазда легче.
Аватара пользователя
Foreigner

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение Foreigner »

А ХР локализованная? Попробуйте вместо find "IP Address" find "IP"
Аватара пользователя
eXtremer

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение eXtremer »

Цитата Foreigner:



А ХР локализованная? Попробуйте вместо find "IP Address" find "IP"
CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут




Не хочу отметить как решено пока не попробую еще как минимум на 2 машины. Но ты реально помог, вроде работает, спасибо огромное!





Код:

Код: Выделить всё

D:\Admin>VPN.bat
Connecting to VPN...
Verifying username and password...
Registering your computer on the network...
Successfully connected to VPN.
Command completed successfully.
 :\Admin>set GETIP= 172.23.241.95
D:\Admin>
Аватара пользователя
eXtremer

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение eXtremer »

Скрипт видимо работает только с Windows XP (english version), с локализацией не хочет, IP (%GETIP%) не отображается, почему?





Код:

Код: Выделить всё

@echo off
@rasdial VPN user password
@setlocal
@for /f "tokens=1-2 delims=:" %%i in ('ipconfig ^| find "IP" ^| find "172.23"') do set GETIP=%%j
@ECHO IP address: %GETIP%
@endlocal



Код:

Код: Выделить всё

D:\>VPN2.bat
Установка связи с VPN...
Проверка имени и пароля пользователя...
Регистрация компьютера в сети...
Установлена связь с VPN.
Команда успешно завершена.
IP address:
D:\>
Аватара пользователя
eXtremer

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение eXtremer »

Скрипт видимо работает только с Windows XP (english version), с локализацией не хочет, IP (%GETIP%) не отображается, почему?





Код:

Код: Выделить всё

@echo off
@rasdial VPN user password
@setlocal
@for /f "tokens=1-2 delims=:" %%i in ('ipconfig ^| find "IP" ^| find "172.23"') do set GETIP=%%j
@ECHO IP address: %GETIP%
@endlocal



Код:

Код: Выделить всё

D:\>VPN2.bat
Установка связи с VPN...
Проверка имени и пароля пользователя...
Регистрация компьютера в сети...
Установлена связь с VPN.
Команда успешно завершена.
IP address:
D:\>
Аватара пользователя
Foreigner

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение Foreigner »

Тот же самый код на Windows Server 2003 (english), отображает IP:





Код:

Код: Выделить всё

D:\Admin>VPN2.bat
Connecting to VPN...
Verifying username and password...
Registering your computer on the network...
Successfully connected to VPN.
Command completed successfully.
 :\Admin>set GETIP= 172.23.241.172
IP address:  172.23.241.172
D:\Admin>



Вот ipconfig после подключения PPTP





Код:

Код: Выделить всё

C:\Documents and Settings\Администратор>ipconfig
Настройка протокола IP для Windows
Подключение по локальной сети - Ethernet адаптер:
        DNS-суффикс этого подключения . . : lan
        IP-адрес  . . . . . . . . . . . . : 192.168.1.66
        Маска подсети . . . . . . . . . . : 255.255.255.0
        Основной шлюз . . . . . . . . . . : 192.168.1.254
VPN - PPP адаптер:
        DNS-суффикс этого подключения . . :
        IP-адрес  . . . . . . . . . . . . : 172.23.241.173
        Маска подсети . . . . . . . . . . : 255.255.255.255
        Основной шлюз . . . . . . . . . . :
C:\Documents and Settings\Администратор>
Аватара пользователя
Foreigner

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение Foreigner »

eXtremer, Попробуйте так:



Код:

Код: Выделить всё

for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IP.*172\.23.*"') do set "getip=%%i"
Аватара пользователя
eXtremer

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение eXtremer »

Foreigner, к сожалению - без изменений.





Код:

Код: Выделить всё

@echo off
@rasdial VPN user password
@setlocal
@for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IP.*172\.23.*"') do set "getip=%%i"
@ECHO IP address: %getip%
@endlocal



Код:

Код: Выделить всё

D:\>VPN2.bat
Установка связи с VPN...
Проверка имени и пароля пользователя...
Регистрация компьютера в сети...
Установлена связь с VPN.
Команда успешно завершена.
IP address:
D:\>
Аватара пользователя
Foreigner

Re: CMD/BAT - узнать какой IP будет у шлюза перед тем как создать маршрут

Сообщение Foreigner »

eXtremer, Сложно сказать, вроде в локализованной ХП были какие-то проблемы с парсингом ipconfig, вроде вместо конца строки null. Из файла же (вывода ipconfig) все отработало нормально. Попробуйте так:



Код:

Код: Выделить всё

@echo off
setlocal
for /f "tokens=*" %%i in ('ipconfig') do call:set %%i
echo %ip%
route add 172.30.255.0 mask 255.255.255.0 %ip%
goto:eof
:set
echo %* | 1>nul findstr "IP.*172\.23.*" && (
    for %%i in (%*) do set "ip=%%i"
)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»