Dial-Up Auto Reconnect

Pozostałe zagadnienia (sprzętowe i programowe), które nie pasują do powyższych kategorii np. optymalizacja łącza, liczniki danych, bezpieczeństwo w sieci, informacje podstawowe.

Moderator: Moderatorzy

ODPOWIEDZ
Awatar użytkownika
Chamelleon
Użytkownik forum
Posty: 28
Rejestracja: 2011-10-27, 00:10
Lokalizacja: Kraków

Dial-Up Auto Reconnect

Post autor: Chamelleon »

Witam.
Z racji tego, że ostatnimi czasy walczyłem z ciągle rozłączającym się internetem w Orange postanowiłem zrobić prosty program, który temu zaradzi.
Niestety nie udało mi się naprawić disconnect'ów ani freezów łącza ale dzięki 2 prostym skryptom można teraz zostawić na noc załóżmy film do ściągnięcia i nie martwić się, że w nocy połączenie się wysypie albo zawiesi.
Program automatycznie sprawdza czy jest dostęp do internetu i jeśli tylko go zabraknie to albo resetuje połączenie albo je wznawia - zależy od stanu połączenia.
Poniżej bardziej szczegółowy opis.

Nowa Wersja v1.1

Zmiany:

- ze względu na ilość plików dodany instalator (czyściutki bez żadnych dodatkowych syfów)
- automatyczny profil Zaplanowanych Zadań systemu Windows. Profil jest importowany podczas instalacji programu więc nie trzeba nic ręcznie ustawiać. Tak jak w poprzedniej wersji co 5 minut pinguje i w razie czego resetuje połączenie.
- dodane menu ze skrótem na pulpicie do szybkiego włączenia / wyłączenia programu
- dodany uninstaller czyszczący wszelkie dane o programie wraz z profilem w Zaplanowanych Zadaniach, użytkownik ma możliwość wyboru czy chce usunąć profil wraz z deinstalacją programu czy chce go pozostawić.
- dodany folder w menu start
- ścieżka domyślna programu we własnym katalogu w root dysku C - nie należy zmieniać tej ścieżki bo skrypt nie będzie działać

Ogólnie poza koniecznością stworzenia połączenia Dial-Up o nazwie DialUp skonfigurowanego z własnym modemem wszystkie ustawienia są wprowadzane automatycznie i już po stworzeniu połączenia i instalacji programu program będzie pracować bez żadnej dodatkowej konfiguracji.

Do pobrania w dolnej części postu.


Dial-Up Auto Reconnect v1.0
!!! Nieaktualna !!!

Kod: Zaznacz cały

Poskładałem te skrypty do kupy i wyszedł mi prosty programik.

Całość oparta na 2 skryptach:

- jeden .bat pinguje serwer www.google.com i jeśli na 4 pakiety 0 zostanie utraconych wyłącza się a jeśli chociaż 1 się wywali to resetuje połączenie Dial-Up (czyli tzw. połączenie telefoniczne)

- drugi .vbs, który ukrywa okno dialogowe CMD żeby wszystko odbywało się w tle i np. w trakcie oglądania filmu czy grania w grę nie przeszkadzało w tym co robimy.

Jedyny mankament programu to: konieczność stworzenia połączenia Dial-Up które [color=red]MUSI[/color] zostać nazwane "[color=red]DialUp[/color]" gdyż inaczej program sam nie odnajdzie naszego połączenia.
Konfiguracja Dial-Up dla chyba każdej polskiej sieci pod adresem http://www.bez-kabli.pl/viewtopic.php?t=7211.

Oba skrypty spakowane w .exe przy pomocy... WinRar'a :) więc każdy może sobie rozpakować, zmodyfikować, poprawić i co tam jeszcze chce.

Nie ma żadnego instalatora GUI (i nie tylko dlatego, że moje zdolności programistyczne są na poziomie rozgarniętego pięciolatka) ale pojedynczy exe'k, który podpinamy pod Windowsowski Harmonogram Zadań. Programik nie siedzi w pamięci nie muli, jest odpalany tylko według harmonogramu (każdy może sobie ustawić jak mu pasuje), nie wyskakują żadne powiadomienia - po prostu ściągamy, podpinamy pod harmonogram i zapominamy o nim jak również o restartach połączenia czy zwiechach łącza.

Poniżej opis Jak podpiąć pod harmonogram zadań.

1. Otwórz Panel sterowania -> Wszystkie elementy Panelu sterowania -> Narzędzia administracyjne -> Harmonogram Zadań
2. Akcja -> Utwórz Zadanie
3. [img]http://img822.imageshack.us/img822/9125/wkzv.jpg[/img]
4. [img]http://img17.imageshack.us/img17/2039/gvwo.jpg[/img]
5. [img]http://img198.imageshack.us/img198/5932/yahf.jpg[/img]
6. [img]http://img27.imageshack.us/img27/4570/i3q9.jpg[/img]
7. [img]http://img801.imageshack.us/img801/511/j9t7.jpg[/img]
8. Po wprowadzeniu ustawień z obrazków powyżej należy się wylogować i zalogować ponownie żeby włączyć harmonogram tego zadania.

Przed wylogowaniem się można jeszcze ręcznie uruchomić zadanie w celu sprawdzenia czy poprawnie działa.
Oczywiście ustawienia harmonogramu powyżej są tylko proponowane i każdy może sobie je ustawić według własnego uznania czy też podłączyć sobie sam skrypt pod jakikolwiek inny "wyzwalacz".
Download:
Google Drive
BOX
MediaFire


Żeby nie usuwać tekstu otwierającego postu wrzucam go w code.

Kod: Zaznacz cały

Jak w temacie szukam prostego programu jak AutoReboot z tego forum do automatycznego resetowania połączenia Dial-Up ale z monitorem pingu.
Wiem, że jak połączenie zostanie zerwane to może zostać automatycznie wznowione przez system ale w sytuacji jak się zawiesi i system wykrywa jako aktywne to po prostu wisi i tyle.
Dlatego dobrym rozwiązaniem byłby program, który chodzi sobie w tle i co "x" sekund pinguje załóżmy google.com i jak na 4 pakiety "x" zostanie utracone to resetuje połączenie Dial-Up.
Wiem, że można to rozwiązać prostym skryptem (ping www.google.com, If %errorlevel% bla bla bla i reset łącza) i to podłączone pod windowsowski sheduler ale po co się fatygować skoro może już ktoś na to wpadł. :)
Zna ktoś taki programik??
Ostatnio zmieniony 2014-01-08, 18:14 przez Chamelleon, łącznie zmieniany 9 razy.
ja.michal
*Mistrz bezprzewodowy*
Posty: 22031
Rejestracja: 2006-08-14, 17:59
Lokalizacja: Polska

Re: Dial-Up Auto Reconnect

Post autor: ja.michal »

Plik bat + harmonogram zadań? ;)
Awatar użytkownika
Chamelleon
Użytkownik forum
Posty: 28
Rejestracja: 2011-10-27, 00:10
Lokalizacja: Kraków

Re: Dial-Up Auto Reconnect

Post autor: Chamelleon »

bat to lipa bo co 5 minut się badziew wyświetla a .vbs nie odpali się przez harmonogram. Trzeba z bata i vbs zrobić exeka i to dopiero podpiąć pod harmonogram.
Skrypty już napisałem i ładnie co 5 minut pinguje google w tle z żadnych wyskakujących okien.
Jak będę miał wenę popakować wszystko w exeka to wrzucę z opisem jak i co.
Awatar użytkownika
Jo_gurt
Guru bezprzewodowy
Posty: 16330
Rejestracja: 2007-11-16, 21:49
Lokalizacja: Lublin

Re: Dial-Up Auto Reconnect

Post autor: Jo_gurt »

Chamelleon pisze: a .vbs nie odpali się przez harmonogram
Oczywiście, że się odpali :P
cscript.exe twoim przyjacielem.
Swoją drogą VBS powinien umrzeć śmiercią naturalną. Przerzuć się na PS.
Awatar użytkownika
Chamelleon
Użytkownik forum
Posty: 28
Rejestracja: 2011-10-27, 00:10
Lokalizacja: Kraków

Re: Dial-Up Auto Reconnect

Post autor: Chamelleon »

Programik skończony, opisany i zuploadowany w pierwszym poście. Zapraszam zainteresowanych do testowania.
Awatar użytkownika
Chamelleon
Użytkownik forum
Posty: 28
Rejestracja: 2011-10-27, 00:10
Lokalizacja: Kraków

Re: Dial-Up Auto Reconnect

Post autor: Chamelleon »

Nowa, jeszcze fajniejsza i w pełni zautomatyzowana wersja w pierwszym poście.
Zapraszam do testowania.

Jeśli ktoś dzisiaj pobierał wersję 1.1 to proszę o pobranie i zainstalowanie jeszcze raz gdyż pierwsza zuploadowana miała dość poważny błąd i po wyłączeniu i ponownym włączeniu z pozycji menu przestawała działać. Obecnie zuploadowana ma już ten błąd naprawiony.
dariawoj
Początkujący użytkownik forum
Posty: 5
Rejestracja: 2016-07-05, 10:05

Re: Dial-Up Auto Reconnect

Post autor: dariawoj »

Bardzo pomysłowy projekt. Nigdy bym nie wpadła na coś takiego.. Niestety nie jest już dostepny a byłam bardzo ciekawa jak to działa.
penknife
Stały użytkownik forum
Posty: 92
Rejestracja: 2014-06-12, 06:30
Lokalizacja: G-cko

Re: Dial-Up Auto Reconnect

Post autor: penknife »

przykładowy kod zgodny z opisem w pierwszym poście:

Kod: Zaznacz cały

@echo off &:: tester_lacza.bat
setlocal EnableDelayedExpansion
rem podaj nazwę połączenia modemowego:
set _Nazwa=internet
rem podaj adresy internetowe do testowania:
set _Adresy=google.com wp.pl onet.pl
:main_loop
rem zaczekaj 4 sekundy (-n 5) przed kolejnym sprawdzeniem
ping -n 5 localhost >nul
rem sprawdź czy istnieje połączenie(wyjście na świat), jeśli nie - połącz i skocz do początku pętli
route print |findstr /r /c:"^ *0\.0\.0\.0 .*[0-9]$">nul ||(echo %date% %time% Polacz "%_Nazwa%" ^& rasdial "%_Nazwa%" & goto main_loop )
rem sprawdź czy połączenie z internetem jest poprawne, jeśli nie - rozłącz
rem rozwiązanie z "szybkim pingiem" i kilkoma testowanymi adresami
set "_i=0" & for %%a in (%_Adresy%) do for /l %%i in (0,1,3) do if "!_i!"=="0" ping -n 1 %%a |find /i "ttl=">nul && set /a _i+=1
rem jeżeli brak poprawnego pingu - rozłącz
if "%_i%"=="0" echo %date% %time% Rozlacz "%_Nazwa%" ^& rasdial "%_Nazwa%" /disconnect
rem skocz do początku pętli
goto main_loop
Należy podać nazwę połączenia modemowego bez polskich znaków diakrytycznych (czyt. ogonków: ąćęłńóśźż ) w linijce:
set _Nazwa=TU NAZWA POŁĄCZENIA MODEMOWEGO
ODPOWIEDZ