PDA

Bekijk de volledige versie : Отправка IP адреса WAN интерфейса по SMS и eMail



ncat
27-09-2009, 00:13
Здравствуйте.
Хочу настроить отправку смс при соединени с интернетом.
Казалось бы просто запихнуть строку в post-firewall, но дело в том что при загрузке роутера, postfirewall срабатывает три раза:

Jan 1 03:00:09 admin: *** post-firewall : started
Jan 1 03:00:09 admin: *** myIP is 0.0.0.0
Jan 1 03:00:09 admin: *** post-firewall : finished
Jan 1 03:00:09 udhcpc[125]: udhcpc (v0.9.9-pre) started
Jan 1 03:00:09 dhcp client: deconfig: lease is lost
Jan 1 03:00:10 udhcpc[125]: Lease of 10.87.10.252 obtained, lease time 604800
Jan 1 03:00:10 admin: *** post-firewall : started
Jan 1 03:00:10 admin: *** myIP is 0.0.0.0
Jan 1 03:00:10 admin: *** post-firewall : finished
Jan 1 03:00:10 dnsmasq[73]: read /etc/hosts - 14 addresses
Jan 1 03:00:10 dnsmasq[73]: read /etc/ethers - 6 addresses
Jan 1 03:00:10 dnsmasq[73]: reading /tmp/resolv.conf
Jan 1 03:00:10 dnsmasq[73]: using nameserver 85.21.192.3#53
Jan 1 03:00:10 dnsmasq[73]: using nameserver 213.234.192.8#53
Jan 1 03:00:10 dhcp client: bound IP : 10.87.10.252 from 10.87.8.1
Jan 1 03:00:11 admin: *** post-boot : started
Jan 1 03:00:11 pppd[147]: Plugin pppol2tp.so loaded.

Jan 1 03:00:11 pppd[147]: pppd 2.4.2 started by admin, uid 0
Jan 1 03:00:11 pppd[147]: Using interface ppp0
Jan 1 03:00:11 pppd[147]: Connect: ppp0 <-->
Jan 1 03:00:11 pppd[147]: CHAP authentication succeeded
Jan 1 03:00:12 pppd[147]: local IP address 95.24.125.31
Jan 1 03:00:12 pppd[147]: remote IP address 85.21.0.245
Jan 1 03:00:12 pppd[147]: primary DNS address 85.21.192.5
Jan 1 03:00:12 pppd[147]: secondary DNS address 213.234.192.7
Jan 1 03:00:12 dnsmasq[73]: read /etc/hosts - 14 addresses
Jan 1 03:00:12 dnsmasq[73]: read /etc/ethers - 6 addresses
Jan 1 03:00:12 dnsmasq[73]: reading /tmp/resolv.conf
Jan 1 03:00:12 dnsmasq[73]: using nameserver 213.234.192.7#53
Jan 1 03:00:12 dnsmasq[73]: using nameserver 85.21.192.5#53
Jan 1 03:00:12 dropbear[161]: Running in background
Jan 1 03:00:12 admin: ::: ...done
Jan 1 03:00:12 admin: *** post-boot : finished
Jan 1 03:00:12 admin: *** post-firewall : started
Jan 1 03:00:12 admin: *** myIP is 95.24.125.31
Jan 1 03:00:13 admin: *** post-firewall : finished
Поэтому хочу избавить себя от ложного срабатывания. Дело в том, что если использовать отсрочку посылки смс через КРОН, что я и хочу сделать, смска об установлении соединении при IP 0.0.0.0 придёт... и не одна.

Собственно вопрос всего лишь в условии в post-firewall


if $2 != "0.0.0.0" ; then
<отправка смс>
fi

usr/bin/logger "*** myIP is $2"

почему условие не работает?
Ногами не пинать, в линуксе новичок.
спасибо.

Power
27-09-2009, 11:21
if $2 != "0.0.0.0" ; then
<отправка смс>
fi

usr/bin/logger "*** myIP is $2"

почему условие не работает?


Скобочки забыли.


if [ $2 != "0.0.0.0" ] ; then

AlexBJ
03-12-2009, 08:20
Написал небольшой скриптик, который отправляет внешний айпишник на почту при его изменении. Используется esmtp и sendmail. Так как не являюсь большим знатоком линукса - не могу понять как должно работать уведомление о доставке, чтобы можно было сделать повторную пересылку при ошибке...



#!/bin/sh

FILENAME="/opt/etc/ipaddr.conf"
from="abc@abc.com"
to="abc@abc.com"

oldip=`cat $FILENAME`
newip=`ip address show dev ppp0 scope global | tr "\n" " " | awk '{print $12}'`

if [ $newip != $oldip ]; then
echo $newip > $FILENAME

result=`echo -e "From: $from\nTO: $to\nSubject: ipadd\n\nadd = $newip" | sendmail -N failure,success $to`
echo $result
fi

AlexBJ
04-12-2009, 12:07
Лано, раз все промолчали, я сам доправил :)

Вобщем скрипт для работы требует


ipkg install esmtp

настройка здесь http://www.macsat.com/macsat/content/view/26/29/

дальше скрипт запускается например раз в 5 минут кроном, проверяет изменение айпишника, при изменении отсылает на почту новый.
В результате можно не заморачиваться с dyndns :)

За кривизну и незнание shell прошу не пинать :)



#!/bin/sh

FILENAME="/opt/etc/ipaddr.conf"
logfile="/opt/etc/mail.log"
from="abc@abc.com"
to="abc@abc.com"

echo "" > $logfile

oldip=`cat $FILENAME`
newip=`ip address show dev ppp0 scope global | tr "\n" " " | awk '{print $12}'`

if [ $newip != $oldip ]; then

logger -t mailsend "Try to send new ip address"
echo -e "From: $from\nTO: $to\nSubject: ipadd\n\nadd = $newip" | sendmail -X $logfile $to

result=`grep "message accepted for delivery" $logfile`

if [ ${#result} -gt 0 ] ; then

echo $newip > $FILENAME
logger -t mailsend "New ip address sent successful"

else

logger -t mailsend "New ip address sent fail"
echo "255.255.255.255" > $FILENAME

fi
fi

ceramic
04-12-2009, 12:43
В результате можно не заморачиваться с dyndns :)
Более чем сомнительная аргументация заморачивания со "скриптиком, который отправляет внешний айпишник на почту при его изменении".

GUID
05-12-2009, 14:40
Возможно мой вопрос позабавит Вас своей наивностью, но сегодня суббота и нужно веселиться ;)
Поскольку:

esmtp is a user configurable relay-only Mail Transfer Agent (MTA) with a sendmail compatible syntax
и sendmail в данном случае сим-линк на esmtp, по фраза

Используется esmtp и sendmail
неправильная (т.к. sendmail использоваться не может).
Я прав?

P.S. я не занудничаю, и тем более никого не хочу обидеть. Просто пытаюсь разобраться в "почтовых дебрях".

AlexBJ
05-12-2009, 20:46
Интересный вопрос - я для себя понял что esmtp является локальным прокси-smtp для отправки через sendmail.. Хотя может и реально sendmail не используется :) я просто искал чтото для отправки почты из консоли - выпал esmtp, он меня устроил :)

Lesder
31-12-2009, 13:27
Привет Всем!
Всех с наступающим! =)
Нужна помощь, если кто может, выручайте =).

Задача:
1. Отправлять текстовый (syslog.log, nat_rules) файл с указанной в нем информацией об IP адресе, каждый раз после его обновления на определенный почтовый ящик.

Для чего мне это нужно, потому что у меня динамический IP адресс.

Решение:
Пока незнаю, надеюсь Вы сможете мне подсказать.


В принципе из под винды я это могу сделать, но хочется все таки задействовать маршрутизатор...

Заранее спасибо.

LnrMn
31-12-2009, 13:55
Ну это просто..
В ipkg есть sendmail..

Lesder
31-12-2009, 14:17
Ну это просто..
В ipkg есть sendmail..

Спс. А для него нужны еще какие нить пакеты?... У меня Wl500gV2... Ему нормально будет? =)

Еще видел mini-sendmail... Он сильно отличается?

vectorm
31-12-2009, 16:35
Стандартный вопрос - DynDNS чем не приглянулся???

bmenee
31-12-2009, 19:05
хоть он и глючный, но это можно делать с помощью встроенного

mini_sendmail

Lesder
01-01-2010, 20:54
Стандартный вопрос - DynDNS чем не приглянулся???

Стыдно мне =). Но я даже и не знал о нем, щас посмотрел, почитал, очень интересно, буду пробовать заюзать его... Спасибо!

terrabyte
13-05-2010, 11:41
тоже не работало забил. Сейчас заработало приходят и на русском и английском сообщения только о ребуте роутера и закачке торрента. С веб интерфейса так и не отправляет.

texxnik
29-11-2010, 22:00
Подскажите как сделать что бы при перезагрузке роутора мне приходила смс, все настроил смс приходит, но не могу настроить что бы приходила при перезагрузке роутора стоит питон!

yuraz
30-11-2010, 05:46
Подскажите как сделать что бы при перезагрузке роутора мне приходила смс, все настроил смс приходит, но не могу настроить что бы приходила при перезагрузке роутора стоит питон!

http://wl500g.info/showpost.php?p=218051&postcount=14

texxnik
03-12-2010, 13:08
1. Что бы при включении роутера отправлялось СМС с текущим IP адреса сервера, в файле /usr/local/sbin/post-mount добавить строчки


logger "Synchronizing time"
ntpclient -s -h 1.ua.pool.ntp.org
logger "sendsms:Отправляем информацию об успешной загрузке"
sleep 5s
ipaddr=`nvram get wan0_ipaddr`
smslog=`/opt/etc/calendarSMS/sendsms -inet -sync "Your router $ipaddr is loaded"`
logger $smslog
как сделать что бы приходила смс когда у роутера поменяется внешний ip?

sonice
11-03-2011, 18:14
Интересная тема.
А мне вот надо посылать SMS кадждый раз когда мой WAN IP меняется так как у меня динамический адрес. Интересно а как мне мой IP дампить в файл каждый раз когда он меняется? Может кто научит?

terrabyte
11-03-2011, 18:24
Интересная тема.
А мне вот надо посылать SMS кадждый раз когда мой WAN IP меняется так как у меня динамический адрес. Интересно а как мне мой IP дампить в файл каждый раз когда он меняется? Может кто научит?
Просто любопытно а для чего Вам нужно узнавать ваш динамический ИП?

tempik
11-03-2011, 18:46
Интересная тема.
А мне вот надо посылать SMS кадждый раз когда мой WAN IP меняется так как у меня динамический адрес. Интересно а как мне мой IP дампить в файл каждый раз когда он меняется? Может кто научит?
А использовать DynDNS религия не позволяет???

sonice
11-03-2011, 21:52
А использовать DynDNS религия не позволяет???

А что DynDNS уже настоили господа знтузиасты?

http://wl500g.info/showthread.php?p=214339&highlight=dyndns#post214339
http://wl500g.info/showthread.php?p=214336&highlight=dyndns#post214336

sonice
11-03-2011, 21:55
Просто любопытно а для чего Вам нужно узнавать ваш динамический ИП?

Ну наверно чтобы подключиться via OpenVPN...

theMIROn
12-03-2011, 14:16
А что DynDNS уже настоили господа знтузиасты?

http://wl500g.info/showthread.php?p=214339&highlight=dyndns#post214339
http://wl500g.info/showthread.php?p=214336&highlight=dyndns#post214336

А что временные проблемы полгода назад все еще актуальны?

yuraz
20-03-2011, 10:19
А что DynDNS уже настоили господа знтузиасты?

http://wl500g.info/showthread.php?p=214339&highlight=dyndns#post214339
http://wl500g.info/showthread.php?p=214336&highlight=dyndns#post214336

на прошивке r2174 работает нормально
два раутера отстраивал все хорошо работает
---

ryzhov_al
28-03-2011, 19:44
Интересно а как мне мой IP дампить в файл каждый раз когда он меняется? Может кто научит?

/sbin/ifconfig ppp0 | grep "inet addr" | awk '{print substr($2,index($2,":")+1)}' > /tmp/ip.txt

Taiser
30-03-2011, 09:25
ipaddr=`nvram get wan0_ipaddr`
smslog=`/opt/etc/calendarSMS/sendsms -inet -sync "Your router assigned new address: $ipaddr "`

У меня в post-firewall такой код работает

yuraz
10-01-2012, 03:51
Интересная тема.
А мне вот надо посылать SMS кадждый раз когда мой WAN IP меняется так как у меня динамический адрес. Интересно а как мне мой IP дампить в файл каждый раз когда он меняется? Может кто научит?


к примеру , поместите этот код в /opt/etc/cron.hourly
или /opt/etc/cron.5mins





#получим текущий ip
ipaddr=`nvram get wan0_ipaddr`
cmdipaddr=`nvram get wan0_ipaddr >/opt/tmp/ipnew.txt`
$cmdipaddr
if [ -f /opt/tmp/ipold.txt ]
then
echo >/dev/null
#cp /opt/tmp/ipnew.txt /opt/tmp/2.txt
else
cp /opt/tmp/ipnew.txt /opt/tmp/ipold.txt
#cp /opt/tmp/ipnew.txt /opt/tmp/1.txt
fi
if cmp /opt/tmp/ipnew.txt /opt/tmp/ipold.txt > /dev/null
then
echo > /dev/null
# если не сменился адрес то и не сорим
else
cp /opt/tmp/ipnew.txt /opt/tmp/ipold.txt
smslog=`/opt/etc/calendarSMS/sendsms -inet -sync "Router new ip : $ipaddr "`
$smslog
logger ">>>new ip $ipaddr "
fi

TReX
10-01-2012, 06:50
к примеру , поместите этот код в /opt/etc/cron.hourly
или /opt/etc/cron.5mins



А зачем такое лазинье по елкам? DYNDNS прекрасно справляется с задачей, как обратится к динамическому адресу не зная его )

yuraz
12-01-2012, 18:50
А зачем такое лазинье по елкам? DYNDNS прекрасно справляется с задачей, как обратится к динамическому адресу не зная его )


Может Вы изначально не поняли тему?

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

Каким образом DYNDNS в этом может помочь ? они что - смс отправляют ? в момент назначения адреса.
пользуюсь dyndns несколько лет, нет у них такого сервиса

TReX
12-01-2012, 21:17
Может Вы изначально не поняли тему?

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

Каким образом DYNDNS в этом может помочь ? они что - смс отправляют ? в момент назначения адреса.
пользуюсь dyndns несколько лет, нет у них такого сервиса

DYNDNS никуда не отправляет адрес, поскольку это становится не нужным, вместо того чтобы читать сообщения с вашим текущим адресом, вы просто обращаетесь к своему железу по имени например vasya.dyndns.com.

solaris
20-03-2013, 16:14
Господа, а можно ли как-нибудь настроить WL500gP с прошивкой Олега так, чтоб после получения его WAN интерфейсом, по dhcp, IP адреса, он (IP) отправлялся мылом на указанный адрес?