Skript na zaslání mailu při změně veřejné IP

Skriptování v MikroTik RouterOS.
Alfik
Příspěvky: 2
Registrován: 13 pro 2016 09:22

Skript na zaslání mailu při změně veřejné IP

Příspěvekod Alfik » 13 pro 2016 09:49

Dobrý den,
poraďte mi někdo prosím s asi jednoduchou věcí - potřebuji nějaký skript, který mi pošle do mailu IP adresu z wan interface pokud se změní. Mám internet od UPC a občas tam veřejnou adresu mění.
Děkuji za pomoc nebo nasměrování.
0 x

radik
Příspěvky: 73
Registrován: 15 říj 2015 13:09

Re: Skript na zaslání mailu při změně veřejné IP

Příspěvekod radik » 13 pro 2016 11:10

A neni jednodussi pouzit DDNS a pristupovat pak pod domenovym jmenem?
0 x

Uživatelský avatar
goblajz
Příspěvky: 749
Registrován: 12 lis 2007 15:23
antispam: Ano

Re: Skript na zaslání mailu při změně veřejné IP

Příspěvekod goblajz » 13 pro 2016 12:02

Ve starších verzích jsem používal tohle, ale v nových 6.x verzích nevím zda to bude funkční...

Kód: Vybrat vše

:global email +420xxxxxxxxx@sms.cz.o2.com
:global A;
:global B;
:global C;
:global stav ""
:global predchozistav ""
:global novystav ""

:for i from=0 to=([:len $A]-1) do={
    :set predchozistav [:pick $C $i]
:put $predchozistav
    :if ([/ping [:pick $A $i] count=10] = 0) do={
      :if ($predchozistav = 2) do={
         :log error ([:pick $B $i] . " je nedostupny!")
      }
      :set novystav 3
      :if ($predchozistav = 1) do={
         :set novystav 2
      }
} else={
      :if ($predchozistav = 3) do={
         :log error ([:pick $B $i] . " je dostupny!")
         /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
         :delay 1
         :local sysname [/system identity get name]
         :local result [/file get dyndns.checkip.html contents]
         :local resultLen [:len $result]
         :local startLoc [:find $result ": " -1]
         :set startLoc ($startLoc + 2)
         :local endLoc [:find $result "</body>" -1]
         :local currentIP [:pick $result $startLoc $endLoc]
         :log warning "Aktualni IP adresa = $currentIP"
         /tool e-mail send to=$email subject="$sysname" body="$currentIP"
         :delay 1
         /file remove ("dyndns.checkip.html")
      }
      :set novystav 1
   }
   :set stav ($stav . "," . $novystav)
}
:set C [:toarray $stav]
0 x

Alfik
Příspěvky: 2
Registrován: 13 pro 2016 09:22

Re: Skript na zaslání mailu při změně veřejné IP

Příspěvekod Alfik » 13 pro 2016 12:12

Super dík za dobré rady - vyzkouším a uvidím :-)
0 x

Uživatelský avatar
mac0112
Příspěvky: 263
Registrován: 21 dub 2010 10:27
antispam: Ano
Bydliště: Klecany
Kontaktovat uživatele:

Re: Skript na zaslání mailu při změně veřejné IP

Příspěvekod mac0112 » 20 pro 2016 10:57

Já používám tento script od MK a pouštím ho každých 10minut. V tomto příkladu je wan interface ppp-out1. Předpokládám, že nastavení parametrů v MK k zasílání emailu je vyřešeno.

:global currentIP;
:local newIP [/ip address get [find interface="ppp-out1"] address];
:if ($newIP != $currentIP) do={
:put "ip address $currentIP changed to $newIP";
:set currentIP $newIP;
/tool e-mail send to=mujemail@mujemail.cz subject= "ip address changed to $newIP" body="soucasna adresa";
}
0 x


Zpět na “Skriptování”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti