Скрипт отправки внешнего IP на почту (если он изменился).

Здесь выкладываем скрипты
GDragon
Сообщения: 119
Зарегистрирован: 20 ноя 2014, 15:48

Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение GDragon » 17 мар 2015, 22:50

Зачем оно нужно - объяснять не стану :)
Задействует те же переменные что и viewtopic.php?f=14&t=6195

Ранее выкладывал в комментариях, сейчас решил отдельную тему запилить.
 Тело скрипта
# Check ip and send to e-mail if changed
#---------- Config below this line ----------

# set WAN interface name
:local WAN "WAN Interface name";
# set e-mail smtp server name
:local smtpserv [:resolve "your SMTP server"];
# set e-mail username
:local Eaccount "sending e-mail user";
# set e-mail password
:local Epassword "sending e-mail password";
# set e-mail main recipient
:local Etomail "e-mail recipient";

#---------- Config above this line ----------

:global StoredIP
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:local CurrIP
:log info "Get WAN interface IP address (New IP to e-mail script)"

# Get WAN interface IP address
:set CurrIP [/ip address get [/ip address find interface=$WAN] address]
:set CurrIP [:pick [:tostr $CurrIP] 0 [:find [:tostr $CurrIP] "/"]]

:if ([:len $CurrIP] = 0) do={
:log error ("Could not get IP for interface " . $WAN)
:error ("Could not get IP for interface " . $WAN)
} else={:log info "IP from $WAN get. (New IP to e-mail script)"}
:log info "Checking & sending IP if needed."

# Check IP address & send if needed

:if ($StoredIP != $CurrIP) do={
/tool e-mail send from=$Eaccount to=$Etomail \
server=$smtpserv port=465 user=$Eaccount password=$Epassword \
subject=("Mikrotik $sysname IP changed (" . [/system clock get date] . \
")") body=("New $sysname IP: $CurrIP.\nRouterOS \
version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \
" . [/system clock get date]);
:log info "Send new IP to e-mail complete"
:set StoredIP "$CurrIP"
:log info "Stored IP Updated"
} else={:log info "IP not changed"}
23q
Сообщения: 57
Зарегистрирован: 16 май 2013, 11:21

Re: Скрипт отправки внешнего IP на почту (если он изменился)

Сообщение 23q » 15 июл 2015, 17:46

а если ай-пи не реальный, то узнать можно таким методом:
# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:local result [/file get dyndns.checkip.html contents]
# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "</body>" -1]
:global currentIP [:pick $result $startLoc $endLoc]

ну и потом обрабатываем результат как угодно :-)
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение Heavymetall2000 » 08 ноя 2016, 19:21

Здравствуйте! Подскажите этот скрипт надо ежесекундно выполнять в Sheduler? У меня не работает на железке RB2011UiAS-2HnD OS 6.36 (stable)
podarok66
Модератор
Сообщения: 3240
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение podarok66 » 08 ноя 2016, 20:08

Зачем же так часто мониторить? Если вы жизненно зависите от этого адреса, 30-60 секунд, если же адрес нужен для определенных маневров, тогда по необходимости. Вы ответьте на вопрос: "Вам адрес зачем?" Если ответ будет точный и вразумительный, то и период выполнения подберете правильно.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение Heavymetall2000 » 09 ноя 2016, 12:26

podarok66 писал(а):Зачем же так часто мониторить? Если вы жизненно зависите от этого адреса, 30-60 секунд, если же адрес нужен для определенных маневров, тогда по необходимости. Вы ответьте на вопрос: "Вам адрес зачем?" Если ответ будет точный и вразумительный, то и период выполнения подберете правильно.



Я его изменил под себя, но не работает ((( :

Код: Выделить всё

# Check ip and send to e-mail if changed
#---------- Config below this line ----------

# set WAN interface name
:local WAN "ether10";
# set e-mail smtp server name
:local smtpserv [213.180.204.38];
# set e-mail Mikro@yandex.ru
:local Eaccount "Mikro@yandex.ru";
# set e-mail 12345678
:local Epassword "12345678";
# set e-mail main recipient
:local Etomail "Kostik@gmail.com";

#---------- Config above this line ----------

:global StoredIP
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:local CurrIP
:log info "Get WAN interface IP address (New IP to e-mail script)"

# Get WAN interface IP address
:set CurrIP [/ip address get [/ip address find interface=$WAN] address]
:set CurrIP [:pick [:tostr $CurrIP] 0 [:find [:tostr $CurrIP] "/"]]

:if ([:len $CurrIP] = 0) do={
:log error ("Could not get IP for interface " . $WAN)
:error ("Could not get IP for interface " . $WAN)
} else={:log info "IP from $WAN get. (New IP to e-mail script)"}
:log info "Checking & sending IP if needed."

# Check IP address & send if needed

:if ($StoredIP != $CurrIP) do={
/tool e-mail send from=$Eaccount to=$Etomail \
server=$smtpserv port=587 user=$Eaccount password=$Epassword \
subject=("Mikrotik $sysname IP changed (" . [/system clock get date] . \
")") body=("New $sysname IP: $CurrIP.\nRouterOS \
version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \
" . [/system clock get date]);
:log info "Send new IP to e-mail complete"
:set StoredIP "$CurrIP"
:log info "Stored IP Updated"
} else={:log info "IP not changed"}


В чем может быть ошибка?
gmx
Сообщения: 2218
Зарегистрирован: 01 окт 2012, 14:48

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение gmx » 09 ноя 2016, 13:13

Посмотрите в скрипте порт SMTP у вас именно такой?
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение Heavymetall2000 » 09 ноя 2016, 14:04

gmx писал(а):Посмотрите в скрипте порт SMTP у вас именно такой?


Да, такой! С такой учеткой у меня отлично скрипт работает отправки лог-файла на почту. А этот скрипт ничего в логах не отображает... У меня провайдер билайн, через l2tp протокол авторизация...
gmx
Сообщения: 2218
Зарегистрирован: 01 окт 2012, 14:48

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение gmx » 09 ноя 2016, 14:18

А IP менялся?? Там ведь условие в скрипте, что он будет работать только если текущий IP не равен ранее запомненному.
И интерфейс WAN у вас не ether10, а что-то вроде pptp_out_1... ну или как-то похоже.
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: Скрипт отправки внешнего IP на почту (если он изменился).

Сообщение Heavymetall2000 » 11 ноя 2016, 11:16

gmx писал(а):А IP менялся?? Там ведь условие в скрипте, что он будет работать только если текущий IP не равен ранее запомненному.
И интерфейс WAN у вас не ether10, а что-то вроде pptp_out_1... ну или как-то похоже.


Всем спасибо! Разобрался! Пришлось немного изменить под себя и заработало )))

Вернуться в «Готовые скрипты Mikrotik»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость