kaco555 Цитата: подскажите, как в батнике ввести сравнение IP до и после реконекта и при совпадении повторитьреконнект??????
Первый батник, который прописываем в USD и запускаем перед каждой закачкой.
[more]
@echo off
rem Еещё один вариант, для совсем уж тяжёлых случаев (вроде моего). Речь идёт о:
rem 1) Модем ZyXEL P-660 EE в режиме РОУТЕРА.
rem 2) Пауза необходимая для смены IP составляет десятки(!) минут.
rem Ощая идея такая, что батник LogAnalyzer.BAT написанный kandiner,
rem анализирует USDownloader.log
rem и выясняет какую паузу задаёт рапида после очередной закачки.
rem Если время этой паузы превышает заданное нами в переменной SET TIME,
rem то запускается батник для реконнекта.
rem Всё гениально просто.
rem В итоге под руководством автора kandiner LogAnalyzer.BAT приобрёл такой вид:
rem Задаём:
rem SET ERRORLINE= - номер строки (именно этой:
rem 13.03.2007 14:30:31 x Плагин вернул ошибку: "Server report: wait 124 minutes"
rem от конца лога, в которой написано время ожидания.
rem SET TIMEPOS= - позиция числа минут (124) в этой строке (считать по пробелам)
rem SET TIME=20 - контрольное время вминутах, т.е. время необходимое для смены IP.
rem Бывают в жизни случаи, когда реконнект нужно сделать аж на 23 минуты,
rem как в моём случае, а раньше провайдер не даёт новый IP.
rem ChangeIP.bat - батник который собственно и запускает процедуру определения
rem текущего внешнего IP, смену IP, определение нового внешнего IP?
rem сравнение нового и старого IP и ... понятно в общем.
rem В расписании USD привязался к условию "Перед попыткой получить ссылку".
@echo off
SET ERRORLINE=3
SET TIMEPOS=10
SET TIME=20
type "C:\USDownloader\USDownloader.log" | find /v /c "" > lines
set LINES=0
set /p LINES=<lines
del lines.
if %LINES% LSS %ERRORLINE% goto :EOF
set /a LINES=LINES-ERRORLINE
for /f "usebackq tokens=3,%TIMEPOS%" %%a IN (`more +%LINES% "C:\USDownloader\USDownloader.log" `) do @call :CheckTimeOut %%a %%b %TIME%
goto :EOF
:CheckTimeOut
@echo off
SET /A WAITTIME=%2+0
if "%1" EQU "" goto :EOF
if "%1" NEQ "x" goto :EOF
if %WAITTIME% LSS %3 (
echo %WAITTIME% minutes - no reconnect
) ELSE (
echo %WAITTIME% minutes - ChangeIP
ChangeIP.bat
)
[/more]
Второй батник который меняет IP называется ChangeIP.bat
[more]
@echo off
rem ChangeIP.bat
rem Задаём:
rem 192.168.1.1 - IP модема
rem ПАРОЛЬ - пароль модема
rem Отключение модема для смены IP происходит на 20-22минуты
rem (изменить время паузы можно изменяя время паузы: sleep 15000
rem и количество повторов: loop 75.
rem для работы этого батника необходимы:
rem printip.exe
rem sleep.exe
rem и ztnbatch.exe все они легко находятся поиском.
rem @echo off
:SNOVA
PrintIP > oldip.txt
type oldip.txt
echo .
ZTnBatch -h 192.168.1.1 -p ПАРОЛЬ -c "poe drop poe0"
rem Ниже строка для соединения WI-FI
rem ZTnBatch -h 192.168.1.1 -p "ПАРОЛЬ" -c "wan adsl reset" -sleep 15000 -loop 75
ping -n 11 127.0.0.1 >nul
@echo off
PrintIP > newip.txt
type newip.txt
echo .
fc oldip.txt newip.txt > NUL
if %errorlevel%==0 (goto SNOVA) else ((del oldip.txt) & (del newip.txt) & (sleep 1) & (exit))
[/more]
Читаем внимательно, если надо поправляем. У меня работает!!!!
Printip это тотже pip в наборах файлов для смены IP найдете.