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

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Смотрите у себя, 7-sky - это name или comment. Должно быть name. Потом, у вас какой тип подключения?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
dariusii
Сообщения: 7
Зарегистрирован: 02 июл 2018, 09:33

Это именно алиас интерфейса. его имя. не коммент.
/interface> print
..
R 7-sky pppoe-out 1480
..
Тип подключения: ppp (pptp).
можно определить адрес немножко иначе
:global WAN [:resolve myip.opendns.com server=208.67.222.222]
правда, не факт, что этот сервер всегда будет работать.


dariusii
Сообщения: 7
Зарегистрирован: 02 июл 2018, 09:33

Что не так ответил-то?


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Да всё так, я просто живой человек. Есть семья и работа. Тут только в свободное время. А его не хватает.
Потом, вы оказывается спрашивали? Я думал это у вас просто мысли по поводу работы скрипта. Первый вопрос от вас я увидел в вашем последнем посте.
Из ваших реплик я понял, что у вас не отрабатывает скрипт. Правильно?
Но вот сути, мелочей непонятно.
Лучше вы по порядку, не вырывая фразы из контекста опишите ситуацию. Скажите что вы хотите получить и какие препятствия у вас на пути. Вполне возможно, что кто-то и поможет.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
dariusii
Сообщения: 7
Зарегистрирован: 02 июл 2018, 09:33

По порядку

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

[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)


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ну, лаконичность, граничащая с чрезмерным упрямством )))
Ладно, давайте по вашим правилам:

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

[podarok66@MikroTik] > :local r 34
[podarok66@MikroTik] > :put $r

[podarok66@MikroTik] >


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
dariusii
Сообщения: 7
Зарегистрирован: 02 июл 2018, 09:33

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

[iron@MikroTik] > :local r 34
[iron@MikroTik] > :put $r

[iron@MikroTik] > 
[iron@MikroTik] > put 34
34
[iron@MikroTik] >

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

:global currentIP [:resolve myip.opendns.com server=208.67.222.222]
[iron@MikroTik] > put $currentIP
x.x.x.x
[iron@MikroTik] > 

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

:local someIP [:resolve myip.opendns.com server=208.67.222.222]
[iron@MikroTik] > put $someIP

[iron@MikroTik] >

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

[iron@MikroTik] > :set r 34
syntax error (line 1 column 6)
[iron@MikroTik] > set $r 34
[iron@MikroTik] > put $r

[iron@MikroTik] >


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ещё раз:

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

[podarok66@MikroTik] > :local r 34
[podarok66@MikroTik] > :put $r

[podarok66@MikroTik] >
То есть пшик!
А теперь так:

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

[podarok66@RB750Gr3] > {:local r 34;
{... :put $r;                       
{... }       
34
[podarok66@RB750Gr3] >
Результат на лицо. Не вырывайте из контекста, не занимайтесь копипастой, пробегите синтаксис глазами https://wiki.mikrotik.com/wiki/Manual:Scripting , поймите механизм объявления и жизни локальных и глобальных переменных.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
dariusii
Сообщения: 7
Зарегистрирован: 02 июл 2018, 09:33

{:set CurrIP [/ip address get [/ip address find interface=$WAN] address]} хоть в скобках, хоть не в скобках все равно вызовет ошибку синтаксиса, если это не переменная (нет символа $).
У автора CurrIP, для set, без $ в начале.
Блин. Запутался.
С вашим-то примером все понятно. Спасибо.


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

У-у-у-у-у, как всё запущено!!! Лезем по приведенной ссылке и читаем:
Scopes
Variables can be used only in certain regions of the script. These regions are called scopes. Scope determines visibility of the variable. There are two types of scopes - global and local. A variable declared within a block is accessible only within that block and blocks enclosed by it, and only after the point of declaration.

Global scope
Global scope or root scope is default scope of the script. It is created automatically and can not be turned off.


Local scope
User can define its own groups to block access to certain variables, these scopes are called local scopes. Each local scope is enclosed in curly braces ("{ }").
.................
.................
Note: Each line written in terminal is treated as local scope
Последняя строка цитаты поясняет ситуацию из вашего первого поста. Вся цитата в целом описывает области применения переменных. Не пожалейте времени, почитайте. Многое станет ясно и будет казаться проще...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить