1

Tråd: Redialer.bat

Hej allesammans

Efter redial.exe slutade fungera för mig pga att googles server, vars ip-adress programmet försökte nå, försvann så passade jag på att göra en egen variant i bat-format (kändes naturligt för ett så pass simplelt program). Enda nackdelen är väl att man får ett dos-fönster öppet. Programmet kräver inga extraprogram alls, sleep (som inte finns inbyggt i windows) har jag löst mha en pingning mot en ip-address som inte finns.

Den enda parametern som kanske behöver någon förklaring är "wait_ipaddr" som alltså ska sättas till en ip-adress som INTE svarar på ping, förslagsvis på det interna nätet. Själv så testar jag mot en dns-server hos tele2 med 3 pingar a 1 sek styck. Misslyckas samtliga så startas uppkopplingen om vilket känns som en robust inställning. Ping-paketens storlek är satt till 0 bytes för att ackumelera så lite bandbredd som möjligt.

Hur som helst, här är det för dom som vill använda det:

@echo off

set test_ipaddr=212.247.156.1
set test_nof_pings=3
set test_wait=1000
set modem_name=3USBModem
set wait_ipaddr=192.168.0.5
set wait_time=15000

:loop
for /f "tokens=2 delims=()" %%I in ('ping -l 0 -n %test_nof_pings% -w %test_wait% %test_ipaddr%') do if "%%I"=="100%% loss" (goto redial)
ping -n 1 -w %wait_time% %wait_ipaddr% > nul
goto loop

:redial
@echo off
echo ***************************************
echo Redialing %modem_name%
date /T
time /T
rasdial /disconnect
rasdial %modem_name%
goto loop

2

Sv: Redialer.bat

Förbättring: om första adressen inte svarar så pingas en andra, alternativ adress.

@echo off

set test_ipaddr1=212.247.156.1
set test_ipaddr2=212.247.156.2
set test_nof_pings=3
set test_wait=1000
set modem_name=3USBModem
set wait_ipaddr=192.168.0.5
set wait_time=15000

:loop
for /f "tokens=2 delims=()" %%I in ('ping -l 0 -n %test_nof_pings% -w %test_wait% %test_ipaddr1%') do if "%%I"=="100%% loss" (goto try2)
ping -n 1 -w %wait_time% %wait_ipaddr% > nul
goto loop

:try2
for /f "tokens=2 delims=()" %%I in ('ping -l 0 -n %test_nof_pings% -w %test_wait% %test_ipaddr2%') do if "%%I"=="100%% loss" (goto redial)
ping -n 1 -w %wait_time% %wait_ipaddr% > nul
goto loop

:redial
@echo off
echo ***************************************
echo Redialing %modem_name%
date /T
time /T
rasdial /disconnect
rasdial %modem_name%
goto loop

3

Sv: Redialer.bat

Kan någon förklara hur detta fungerar? Och till vilket syfte?

Och i Vista kan man inte göra .bat filer?

4

Sv: Redialer.bat

Typ.

"pinga denna ip".
"vänta"
"modem namn"
"ip för att vänta på"
"vänta"

"loopa"
"pinga, om 100% ping tappas, testa ip nr2"
"nr2, pinga, om 100% ping  tappas gå till redial"

"ring om, (modemnamnet)".
Efter allt annat så gå tillbaka till loop och börja kolla igen!.

---


Säker på att bat inte funkar på vista? Har inte testat själv i vista men men.

Gillar prylar, 2G/3G/4G, den som har mest prylar när den dör vinner!

5

Sv: Redialer.bat

Andreas beskrev funktionaliteten bra.

Jag använder det på min server som agerar gateway ut på internet för mina andra datorer, ipod etc.