Страница 2 из 4

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

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

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

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

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

Добавлено: 05 июл 2018, 14:26
dariusii
Что не так ответил-то?

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

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

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

Добавлено: 06 июл 2018, 11:22
dariusii
По порядку

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

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

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

Добавлено: 06 июл 2018, 23:16
podarok66
Ну, лаконичность, граничащая с чрезмерным упрямством )))
Ладно, давайте по вашим правилам:

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

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

[podarok66@MikroTik] >

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

Добавлено: 07 июл 2018, 09:04
dariusii

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

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

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

Добавлено: 07 июл 2018, 21:49
podarok66
Ещё раз:

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

[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 , поймите механизм объявления и жизни локальных и глобальных переменных.

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

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

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

Добавлено: 08 июл 2018, 15:12
podarok66
У-у-у-у-у, как всё запущено!!! Лезем по приведенной ссылке и читаем:
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
Последняя строка цитаты поясняет ситуацию из вашего первого поста. Вся цитата в целом описывает области применения переменных. Не пожалейте времени, почитайте. Многое станет ясно и будет казаться проще...