Jump to content
Александр Рыжов

Отправка СМС после наступления определённого события

Recommended Posts

Есть возможность отправлять до пяти СМС в сутки на свой телефон, используя сервис SMS.ru.

Для отправки СМС с роутера необходимо после регистрации на сервисе получить api_id.

Ниже приведена пара примеров использования этой возможности.

  • Thanks 1

Share this post


Link to post
Share on other sites

Оповещение о смене IP адреса роутера

Если вы по какой-то причине не хотите использовать DynDNS, можно получать IP адрес роутера СМС-кой.

Установите недостающий пакет:

opkg install curl

Создайте на роутере файл /opt/etc/ndm/wan.d/010-send.sms.sh со следующим содержимым:

#!/bin/sh

iface=ppp0
number=79101112233
api_id=123ab5cb-32b1-cbe7-321e-0f12345fa321

[ "$interface" = "$iface" ] && curl -d "text=Новый IP кинетика $address" http://sms.ru/sms/send\?api_id=$api_id\&to=$number

в моём случае:

  • ppp0 — имя интерфейса, используемого для выхода в интернет. Если у вас не ppp-соединение, см. вывод ifconfig,
  • 79101112233 — номер телефона, куда будут приходить СМС-ки. Здесь можно использовать только тот же номер, какой был указан при регистарции на sms.ru,
  • 123ab5cb-32b1-cbe7-321e-0f12345fa321 — api_id, которую можно посмотреть\получить в своём профиле сервиса sms.ru.

Сделайте скрипт исполняемым:

chmod +x /opt/etc/ndm/wan.d/010-send.sms.sh

Всё! Теперь при установлении интернет-соединения роутер вышлет вам СМС-кой новый адрес.

2748495b691c.png

Edited by Guest
  • Thanks 1

Share this post


Link to post
Share on other sites

Оповещение о подмене MAC-адреса в сети

Решение, приведённое ниже отправим вам сообщение, если кто-то в вашей локальной сети пытается подменить свой MAC-адрес.

Установите следующие пакеты:

opkg install curl arpwatch

Проверьте имя сетевого интерфейса в скрипте /opt/etc/init.d/S04arpwatch. Стоящий по умолчанию br0 можно не менять, если собираетесь отслеживать MAC-спуфинг на Wi-Fi интерфейсе.

Запустите arpwatch. Он будет стартовать при каждой загрузке роутера сам:

/opt/etc/init.d/S04arpwatch start

Создайте скрипт /opt/sbin/sendmail со следующим содержимым:

#!/bin/sh

number=79101112233
api_id=123ab5cb-32b1-cbe7-321e-0f12345fa321

while read line; do
 [ ! -z "$(echo $line | grep '^Subject')" ] && curl -d "text=$line" http://sms.ru/sms/send\?api_id=$api_id\&to=$number
done

сделайте его исполняемым:

chmod +x /opt/sbin/sendmail

Всё! Если кто-то попытается сменить MAC-своего устройства, вы получите оповещение.

15beecfccb9d.png

  • Thanks 1

Share this post


Link to post
Share on other sites

Здравствуйте. Интересная возможность. Хотелось бы реализовать следующее:

отправка SMS на определенный номер при подключении (и отключении) к роутеру определенного устройства (например смартфона ребенка). Таким образом можно получать уведомления "Пришел домой/Ушел из дома".

Share this post


Link to post
Share on other sites
Здравствуйте. Интересная возможность. Хотелось бы реализовать следующее:

отправка SMS на определенный номер при подключении (и отключении) к роутеру определенного устройства (например смартфона ребенка). Таким образом можно получать уведомления "Пришел домой/Ушел из дома".

bash и cron вам в этом помогут, а способ отправки SMS можете взять прямо этот...

Share this post


Link to post
Share on other sites

А подробнее можно? Для чайников. Делаю первые шаги.

Share this post


Link to post
Share on other sites
Здравствуйте. Интересная возможность. Хотелось бы реализовать следующее:

отправка SMS на определенный номер при подключении (и отключении) к роутеру определенного устройства (например смартфона ребенка). Таким образом можно получать уведомления "Пришел домой/Ушел из дома".

bash и cron вам в этом помогут, а способ отправки SMS можете взять прямо этот...

В keenopt это тоже можно делать?

Share this post


Link to post
Share on other sites

Curl теперь есть в Keenopt, поэтому разницы никакой. Так же в Keenopt можно установить полноценный BASH и cron, осталось изучить литературу на тему как писать баш скрипты и настраивать cron. Как настроить cron тут активно обсуждалось...

Share this post


Link to post
Share on other sites

Подскажите, а какой скрипт и где прописать для получения смс при включении роутера, а также при появлении интернета от основного провайдера в случае когда интернет был через резервные каналы (например 3g/4g) ???

Share this post


Link to post
Share on other sites
Подскажите, а какой скрипт и где прописать для получения смс при включении роутера, а также при появлении интернета от основного провайдера в случае когда интернет был через резервные каналы (например 3g/4g) ???
Смотрите wiki на предмет «где» и скрипты выше на предмет «как». В указанных местах приведены исчерпывающие ответы на оба вопроса.

Share this post


Link to post
Share on other sites

Как я понял скрипты из ndm/wan.d запускаются при появлении интернет соединения - в нашем случае ppp0. Тогда, как я понимаю, скрипт из второго сообщения этой темы полностью соответствует моим запросам?

Share this post


Link to post
Share on other sites
Как я понял скрипты из ndm/wan.d запускаются при появлении интернет соединения - в нашем случае ppp0. Тогда, как я понимаю, скрипт из второго сообщения этой темы полностью соответствует моим запросам?
Встречный вопрос: что мешает проверить самостоятельно? Всё равно ведь придётся проверять.

Share this post


Link to post
Share on other sites

Opkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 1 а это что может значить? Смс не приходит. Написано красным, появляется при загрузке роутера и если wan кабель вытащить, а потом вставить - короче как положено.

Share this post


Link to post
Share on other sites
Opkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 1 а это что может значить?
Скрипт выполняется с какой-то ошибкой. Можете проверить в чём дело, запустив его вручную и указав нужные параметры.

Share this post


Link to post
Share on other sites
Opkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 1 а это что может значить?
Скрипт выполняется с какой-то ошибкой. Можете проверить в чём дело, запустив его вручную и указав нужные параметры.

Думаю, что проблема в keenopt. А можете просто помочь со скриптом который отправляет письмо на почту???

Share this post


Link to post
Share on other sites
Думаю, что проблема в keenopt.
Проверяется за несколько секунд запуском вашего скрипта.
А можете просто помочь со скриптом который отправляет письмо на почту???
Просто уже помог. Замечу, что нельзя зажмурившись что-то ввести в терминале, чтобы сделать круто, придётся разбираться в предмете. Все знания у вас на руках есть.

Share this post


Link to post
Share on other sites

Строка curl -d "text=ZZZZZZ" http://sms.ru/sms/send\?api_id=ZZZZZ-WWWW-RRR-HHHH-IIIIII\&to=79999999999 запущенная в консоле присылает мне смс, а такая же в скрипте:

Feb 13 15:03:45ndmOpkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: curl: (3) Illegal characters found in URL.

Feb 13 15:03:45ndmOpkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 127.

Share this post


Link to post
Share on other sites

Я вот что подумал, было бы очень круто сделать такую утилиту, которая могла бы работать с внешним модемом 3G/LTE, который подключен по USB. Вообще, немного не в тему, но утилитка, способная работать с SMS на модемах, была бы полезна. Пока нигде ничего такого я не видел нигде, хотя может я ошибаюсь ?

Share this post


Link to post
Share on other sites
Я вот что подумал, было бы очень круто сделать такую утилиту, которая могла бы работать с внешним модемом 3G/LTE, который подключен по USB. Вообще, немного не в тему, но утилитка, способная работать с SMS на модемах, была бы полезна. Пока нигде ничего такого я не видел нигде, хотя может я ошибаюсь ?

На мой взгляд проще прошить модем под NDIS, и уже из этой морды работать с sms и ussd. По крайней мере те свистки, на которые есть такой вариант.

Share this post


Link to post
Share on other sites
Я вот что подумал, было бы очень круто сделать такую утилиту, которая могла бы работать с внешним модемом 3G/LTE, который подключен по USB. Вообще, немного не в тему, но утилитка, способная работать с SMS на модемах, была бы полезна. Пока нигде ничего такого я не видел нигде, хотя может я ошибаюсь ?
Для работы с СМС в Entware есть smstools3.

Для диалога с 3G-модемом (регистрация, сила сигнала, параметры подключения) — comgt.

Share this post


Link to post
Share on other sites
Я вот что подумал, было бы очень круто сделать такую утилиту, которая могла бы работать с внешним модемом 3G/LTE, который подключен по USB. Вообще, немного не в тему, но утилитка, способная работать с SMS на модемах, была бы полезна. Пока нигде ничего такого я не видел нигде, хотя может я ошибаюсь ?

На мой взгляд проще прошить модем под NDIS, и уже из этой морды работать с sms и ussd. По крайней мере те свистки, на которые есть такой вариант.

Согласен полностью. Только мой один Hyawei 392 (или как там его), на Ultra не хочет пока заводиться в этом режиме. Думаю решиться потом с прошивками или если нет тоже не беда.

Share this post


Link to post
Share on other sites
Строка curl -d "text=ZZZZZZ" http://sms.ru/sms/send\?api_id=ZZZZZ-WWWW-RRR-HHHH-IIIIII\&to=79999999999 запущенная в консоле присылает мне смс, а такая же в скрипте:

Feb 13 15:03:45ndmOpkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: curl: (3) Illegal characters found in URL.

Feb 13 15:03:45ndmOpkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 127.

День добрый!! Решили проблему?

Share this post


Link to post
Share on other sites
Opkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 1 а это что может значить? Смс не приходит. Написано красным, появляется при загрузке роутера и если wan кабель вытащить, а потом вставить - короче как положено.

День добрый!! Решили проблему?

У меня скрипт заработал, только без пустых сток и "дефайнов"

Версия NDMS v2.05(AAGK.0)C4

#!/bin/sh
[ "$interface" = "ppp0" ] && curl -d "text=Новый IP кинетика $address" http://sms.ru/sms/send\?api_id=NNNNNNNN-NNNN-NNNN-NNNN-NNNNNNNNNNNN\&to=NNNNNNNNNNNN

Share this post


Link to post
Share on other sites

В общем что то не так или в скрипте, или в моем маршрутизаторе. Так же, как уже писали здесь, у меня в логе выходит ошибка:

Opkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 1

Курл работает, если скормить командной строке следующую команду, то СМС отправляется:

curl -d "text=ZZZZZZ" http://sms.ru/sms/send\?api_id=ZZZZZ-WWWW-RRR-HHHH-IIIIII\&to=79999999999

Проблемы начинаются после добавления вначале квадратных скобок:

[ "$interface" = "l2tp0" ]

Пробовал писать скрипт в одну строку, как у предыдущего оратора, но все равно не работает. У меня соединение настроено по L2TP, следовательно интерфейс L2TP0.

Вопрос: "Где собака порылась?"

UPD. Вроде заработало, только я так и не понял в чем была причина. Заработало после того, как сегодня сделал полный сброс настроек роутера на заводские, а после заново настроил и подключил флешку с уже настроенным софтом, тут же пришла СМС.

Edited by Guest

Share this post


Link to post
Share on other sites

Сброс настроек на заводские не помог, из командной строки curl работает.

в конец строки echo дописал, сообщение выводится. ошибок в логе нет, смс тоже нет :-)

Share this post


Link to post
Share on other sites

 

Комманда ifconfig выдала результат в виде 7 интерфейсов: br0, eth2, eth2.1, eth2.2, ezcfg0, lo, ra0. У меня интернет идёт напрямую от провайдера без авторизации с динамическим ip.

Как я понял br0, ra0 это беспроводная сеть. Какой из eth относится к WAN интерфейсу? Гдето прочитал что WAN это eth2.2 так оно и есть?

ezcfg0 - это скрытый интерфейс, необходимый для EasyConfig и my.keenetic.net.

lo - интерфейс loopback.

Сам нашёл ответ сравнив MAC адрес eth2.2:

eth2.2    Link encap:Ethernet  HWaddr 1C:6F:65:4C:BD:44
             inet addr:5.206.101.55  Bcast:5.206.127.255  Mask:255.255.224.0
             inet6 addr: fe80::1e6f:65ff:fe4c:bd44/64 Scope:Link

и MAC адрес ISP интерфейса (WAN), который отображается в веб интерфейсе кенетика.

Image 2.jpgImage 3.jpg

Edited by beowulf0208

Share this post


Link to post
Share on other sites

Не знаю как но отправка смс заработала! с переменными, но убирал пустые строки

Share this post


Link to post
Share on other sites

всем доброго времени суток. подскажите пожалуйста, а есть ли возможность таким образом отправлять смс о появлении обновлений прошивки?

Share this post


Link to post
Share on other sites

У меня на Keenetic II тоже не получается настроить отправку смс о смене IP адреса. Выдаёт сообщение:

Opkg::Manager: /opt/etc/ndm/wan.d/010-send.sms.sh: exit code 1
 
~ # chmod +x /opt/etc/ndm/wan.d/010-send.sms.sh
~ # sh /opt/etc/ndm/wan.d/010-send.sms.sh
~ # chmod +x /opt/etc/ndm/wan.d/010-send.sms.sh
~ # sh /opt/etc/ndm/wan.d/010-send.sms.sh
: not foundm/wan.d/010-send.sms.sh: line 2:
: not foundm/wan.d/010-send.sms.sh: line 6:
~ #
 
В первом случае пробовал запускать скрипт без пустых строк, а во втором случае с пустыми строками (2 и 6) как написано в инструкции. Получается что Cron не хочет исполнять скрипт с пустыми строками? У меня интернет идёт напрямую от провайдера, авторизация не используется. Может быть я указал не правильный интерфейс: eth2.2?

Share this post


Link to post
Share on other sites
В 10/26/2016 в 17:29, Илья Картавенко сказал:

всем доброго времени суток. подскажите пожалуйста, а есть ли возможность таким образом отправлять смс о появлении обновлений прошивки?

А вас устроит popup-уведомление на телефоне от мобильного приложения при выходе новой прошивки? У нас же уже есть приложение.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...