Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Зачем оно нужно - объяснять не стану :) Задействует те же переменные что и 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"}
а если ай-пи не реальный, то узнать можно таким методом:
# 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]
Зачем же так часто мониторить? Если вы жизненно зависите от этого адреса, 30-60 секунд, если же адрес нужен для определенных маневров, тогда по необходимости. Вы ответьте на вопрос: "Вам адрес зачем?" Если ответ будет точный и вразумительный, то и период выполнения подберете правильно.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
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 писал(а):Посмотрите в скрипте порт SMTP у вас именно такой?
Да, такой! С такой учеткой у меня отлично скрипт работает отправки лог-файла на почту. А этот скрипт ничего в логах не отображает... У меня провайдер билайн, через l2tp протокол авторизация...
А IP менялся?? Там ведь условие в скрипте, что он будет работать только если текущий IP не равен ранее запомненному. И интерфейс WAN у вас не ether10, а что-то вроде pptp_out_1... ну или как-то похоже.
gmx писал(а):А IP менялся?? Там ведь условие в скрипте, что он будет работать только если текущий IP не равен ранее запомненному. И интерфейс WAN у вас не ether10, а что-то вроде pptp_out_1... ну или как-то похоже.
Всем спасибо! Разобрался! Пришлось немного изменить под себя и заработало )))
[iron@MikroTik] > :local WAN "7-sky";
[iron@MikroTik] > :local smtpserv [:resolve "smtp.gmail.com"];
[iron@MikroTik] > :local Eaccount "fooname@gmail.com";
[iron@MikroTik] > :local Epassword "foopass";
[iron@MikroTik] > :local Etomail "secondfooname@gmail.com";
[iron@MikroTik] >
[iron@MikroTik] > :global StoredIP
[iron@MikroTik] > :global StoredIP
[iron@MikroTik] > :local sysname [/system identity get name];
[iron@MikroTik] > :local sysver [/system package get system version];
[iron@MikroTik] > :local CurrIP
[iron@MikroTik] > :log info "Get WAN interface IP address (New IP to e-mail script)"
[iron@MikroTik] >
[iron@MikroTik] > :set CurrIP [/ip address get [/ip address find interface=$WAN] address]
syntax error (line 1 column 6)
ессно, гуглить :set CurrIP жесть. это может быть любая переменная для такого случая. то бишь, народ-то где-то тоже сталкивался, но поиск приводит к чему-то вот такому.