motofan logo
5 страниц V « < 3 4 5        
> 

Скрипт-пинговалка для поддержания Gprs-соединения, Для тех, кто использует gprs-internet

Как вы оцениваете данный мануал?
Как вы оцениваете данный мануал?
Заслуживает участия в финале конкурса [ 100 ] ** [85.47%]
Не заслуживает участия в финале конкурса [ 17 ] ** [14.53%]
Всего голосов: 117
Вы должны набрать 0 поста, что бы голосовать. 
flashrid3r
сообщение 20.10.2009, 14:10


Новичок
*

Группа: Пользователи
Сообщений: 12
Регистрация: 12.10.2008
Пользователь №: 183 534
Модель телефона: 398
Прошивка: 49

Рейтинг: 6.5



Отличный скрипт, давно хотел что-то подобное. И почему я только сейчас его нашёл?
Вот, держите мою версию. Перевёл на русский язык всё, немного изменил логику скрипта, сделал сообщения об ошибках и вывод статуса в заголовке окна.

Может быть, еще для каких номеров ошибки rasdial специальную обработку сделать? Конечно, сообщения rasdial сами по себе достаточно информативны, но по отношению к gprs некоторые ошибки могут иметь свой какой-то особенный смысл, зачастую неочевидный.
Например, бывает когда по коду ошибки можно точно сказать, подключиться не получится, пока не перезагрузишь телефон. К сожалению, я не помню какой точно, никогда не обращал особо внимания на эти номера.
Прикрепленный файл pinger.zip   ( 4.68 килобайт ) Кол-во скачиваний: 413
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bammbr
сообщение 26.10.2009, 20:26


Новичок
*

Группа: Начинающие
Сообщений: 2
Регистрация: 26.10.2009
Пользователь №: 208 761
Модель телефона: Samsung D900

Рейтинг: 0



Цитата(flashrid3r @ 20.10.2009, 20:10) *

Отличный скрипт, давно хотел что-то подобное. И почему я только сейчас его нашёл?
Вот, держите мою версию. Перевёл на русский язык всё, немного изменил логику скрипта, сделал сообщения об ошибках и вывод статуса в заголовке окна.

Может быть, еще для каких номеров ошибки rasdial специальную обработку сделать? Конечно, сообщения rasdial сами по себе достаточно информативны, но по отношению к gprs некоторые ошибки могут иметь свой какой-то особенный смысл, зачастую неочевидный.
Например, бывает когда по коду ошибки можно точно сказать, подключиться не получится, пока не перезагрузишь телефон. К сожалению, я не помню какой точно, никогда не обращал особо внимания на эти номера.

Не вижу смысла пользователям ХР и выше тащить отсюда choice.com, а в скрипте проверять его наличие в каталоге скрипта. Choice есть в самой винде. Только там синтаксис немного другой. Навскидку подредактировал твой скрипт:
Код

@echo off
title Pinger
echo %date% %time% --- STARTED --- >> pinger.log
set /a Try=1

rem Оригинальная версия (c) Паук, 2007
rem Дополнения и исправления flashrider, 2009
rem http://forum.motofan.ru/index.php?showtopic=99866

rem Все настройки вынесены в этот блок

rem имя подключения
set DialName=beeline

set Login=beeline
set Pass=beeline

rem таймаут пинга в мс
set TimeOut=10000
rem количество попыток пинга
set MaxPing=5
rem пауза в секундах
set Pause=40
rem адрес хоста для пинга
set host=ya.ru
rem свой телефонный номер
set PhoneNum=*99#

echo  start ping
rem if not exist choice.com (
rem echo Для работы этого скрипта необходимо наличие файла choice.com в папке со скриптом.
rem echo Он, по идее, в том же архиве должен быть, я не знаю куда ты его дел.
rem pause
rem goto 4
rem )

echo Управление:
echo  P - ping (для проверки соединения)
echo  R - немедленное принудительное переподключение
echo  D - разорвать соединение и выйти
echo  E - выйти, не разрывая соединение
echo ...А можно ничего не нажимать, просто свернуть это окно.
echo Тогда скрипт будет атоматически проверять соединение
echo каждые %Pause% секунд и, при необходимости, переподключаться.
echo.
rasdial %DialName% %Login% %Pass%
if %errorlevel%==623 goto error623
if %errorlevel%==797 goto error797

:ping
title Проверяем ping - Pinger
echo.
echo  Проверяем ping...
if %try% geq 2 echo  Попытка номер %try%...
ping %host% -n 1 -w %TimeOut% >> nul
if not errorlevel=1 goto ok
set /a Try=%Try%+1
if %Try% geq %MaxPing% (
set /a Try=1
goto bad
)
title Нет соединения - Pinger
goto ping

:ok
echo.
echo  %time% Соединение активно. 
title Соединение активно - Pinger
echo Следующая проверка через %Pause% секунд.
goto end

:bad
echo.
echo  %time% Нет соединения, попробуем переподключиться...
if %try% geq 2 echo  Попытка номер %try%...
if %try% geq 5 (
echo Нет, чё-то не получается.
echo Подожду пару минут, потом ещё раз попробую...
choice /T 120 /N
set /a Try=1
goto bad
)
echo %date% %time% --! Trouble, reconnect !-- >> pinger.log
echo Разрываем текущее соединение (если подключено)...
rasdial %DialName% /disconnect
if %try% geq 3 (
echo Звоним на %PhoneNum%, чтобы "сбросить" модем...
rasdial %DialName% /phone:%PhoneNum%
)
echo Подключаемся к %DialName%...
title Подключаемся... - Pinger
rasdial %DialName% %Login% %Pass%
if %errorlevel%==797 goto error797
if errorlevel=1 (
title Ошибка rasdial #%errorlevel% - Pinger
echo %date% %time% -- rasdial errorlevel: %errorlevel%-- >> pinger.log
set /a Try=%Try%+1
goto bad
)
set /a Try=1
goto ping

:error623
echo.
echo  Ошибка 623. Не существует подключения с таким именем "%DialName%".
echo Отредактируйте в скрипте имя вашего подключения.
echo Или откройте "Панель управления" - "Сетевые подключения"
echo и переименуйте ваше подключение в %DialName%
pause
goto 4

:error797
title Ошибка #797 - Pinger
echo.
echo  Ошибка 797. Телефон не подключен, или занят другой программой.
echo Проверьте телефон и попробуйте еще раз.
echo Следующая попытка переподключения через 20 секунд...
choice /T 20 /N
set /a Try=1
goto bad

:end
set /a Try=1
echo [P]ing [R]econnect [D]isconnect [E]xit?
choice /C:PRDE /T %Pause% /D P /N
goto %ERRORLEVEL%
:1
goto ping
:2
goto bad
:3
echo Отключаемся, пожалуйста подождите...
rasdial %DialName% /disconnect
:4
echo %date% %time% == Exit script == >> pinger.log


...на первый взгляд работает как дОлжно. Если кому интересно, могу переписать этот скрипт на VBS. Вообще красиво получится. Но,возможно, не так информативно сделать придется, чтоб выскакивающие окошки не доставали. Или сделать под консольный CScript. Windows Script Host Version 5.6 так же в любой винде начиная с ХР болтается.

Сообщение отредактировал bammbr - 26.10.2009, 20:43
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
flashrid3r
сообщение 27.10.2009, 6:34


Новичок
*

Группа: Пользователи
Сообщений: 12
Регистрация: 12.10.2008
Пользователь №: 183 534
Модель телефона: 398
Прошивка: 49

Рейтинг: 6.5



Цитата(bammbr) *
Choice есть в самой винде.
Странно, у меня нету..

Цитата(bammbr) *

rem свой телефонный номер
set PhoneNum=*99#
переменная PhoneNum не для этого сделана.
Цитата(Паук @ 18.2.2007, 18:07) *

Иногда, когда канал залип (даже при переподключании траф не идет) - помогает перезвонить самому себе.
Добавил это в скрипт.

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
bammbr
сообщение 27.10.2009, 23:00


Новичок
*

Группа: Начинающие
Сообщений: 2
Регистрация: 26.10.2009
Пользователь №: 208 761
Модель телефона: Samsung D900

Рейтинг: 0



Цитата(flashrid3r @ 27.10.2009, 12:34) *

Странно, у меня нету..

Да уж... с обобщением на все ХР - это я погорячился. unsure.gif Просто CHOICE в виде EXE-файла присутствовал еще MS-DOS 6.0 в составе core set of utilities (Застал, знаешь ли, еще те лохматые времена smile.gif Тогда и писал активно сам ВАТ-ники). Потом CHOICE перекочевал в Resource Kit, откуда тоже временами исчезал. Подробнее смотри здесь:
http://www.winsupport.org/utilities/freedos-choice.html
Ну а на моей XP 64-bit ни опубликованный тобой COM, ни доступный по ссылке выше ЕХЕ-шник просто не запустятся, как 16-битные приложения. Зато по путям %SystemRoot%\system32 и %SystemRoot%\SysWOW64 есть свои, родные. А если верить этому
http://blogs.techrepublic.com.com/window-on-windows/?p=682
и этому
http://www.greatis.com/vista/Utilities/c/choice.exe.htm
CHOICE прочно вернулся в состав системных утилит в Висте.
На 32-битной ХР, я думаю, не будет проблем с запуском CHOICE из 2003-го сервера.
Ну, а вообще, конечно, колхоз - дело добровольное. Странно просто со скриптом таскать программу, неизвестно откуда взятую, вдвое большую самого скрипта, и содержащую одну только функцию. Из-за таких вот ограничений я и предпочитаю языку BAT-файлов VBS. Хотя, вроде, и в BAT-нике это можно реализовать по примеру
http://social.technet.microsoft.com/forums...4-d0ad059d1dd7/
(тут см. последнее сообщение).
Да и запоздали мы с тобой с обсуждением этой темы, если судить по датам начала обсуждения. Меня извиняет только то, что я никогда мобильным интернетом как основным типом подключения не пользовался. А сейчас пока выбора нет. Но для себя уже сделал вывод, что мегабит, скажем, по меди и мегабит по эфиру - это две большие разницы. При первой же возможности перейду на другую технологию подключения.

Сообщение отредактировал bammbr - 27.10.2009, 23:03
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Скрипт-пинговалка для поддержания Gprs-соединения, Для тех, кто использует gprs-internet · WAP и GPRS · Forum
 

5 страниц V « < 3 4 5
Ответ в темуСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.4.2024, 23:51

Форум живёт: