Script para enviar ip para o email

Publicado por FBSD Foundation em 30/06/2007

[ Hits: 11.473 ]

 


Script para enviar ip para o email



Se você não está afim de usar um desses programas que verificam a alteração do ip como no-ip, dyndns, etc, pode usar esse script simples e funcional. Apesar dos outros associarem um nome ao ip, o que é mais fácil de recordar, esse vai com intuito de aprendizado.

Nesse script você vê como manipular arquivos, enviar emails, etc. Espero que seja útil.

Abraços!

#!/bin/sh
#
#
#
#path de comandos usados no script

AWK=/usr/bin/awk
GREP=/usr/bin/grep
IFCFG=/sbin/ifconfig
CAT=/bin/cat
TOUCH=/usr/bin/touch
CHMOD=/bin/chmod

#path do comando mail
MAIL="/usr/bin/mail"

# destinatários que receberão o email como o ip
TO="[email protected] [email protected]"

#interface onde está setado o ip externo, válido na inet.
EXT_IF="rl1"

# armazena em EXT_IP o ip válido
EXT_IP="`$IFCFG $EXT_IF | $GREP -w inet | $AWK '{print$2}'`"

# arquivo que armazena o ip atual
ARQ="/tmp/ip.txt"

# testa se $ARQ existe, se existir armazena em $CUR_IP o valor
# de $ARQ então testa se $EXT_IP é igual a $CUR_IP ou seja,
# se o ip não mudou. Se mudou envia o ip para o email dos
# destinatários e armazena em $ARQ.
# Se $ARQ não existir então criaremos e setamos permissões de
# r+w somente para root


if [ -e $ARQ ];
then
   CUR_IP="`$CAT $ARQ`"  
  
   if [ $EXT_IP == $CUR_IP ];
   then
      echo "NO CHANGES"
   else
      echo $EXT_IP | $MAIL -s "MygwIP - $EXT_IP" $TO
      echo $EXT_IP > $ARQ
   fi
else
   $TOUCH $ARQ
   $CHMOD 0600 $ARQ
   echo $EXT_IP > $ARQ
   echo "new file $ARQ created."
fi

Coloque na cron pra checar a cada 5 minutos e corra pro abraço! Lembrando que você necessita enviar emails, portanto configure seu smtp.

#cron */5 * * * * /bin/sh /usr/local/sbin/checkmyip.sh 2>&1
Outras dicas deste autor

Squid autenticando via radius

Criando uma ISO do openBSD 4.1

Leitura recomendada

Highlighting: Destacando Códigos Bash Script no Eclipse

Habilitar Cgi-Shell no Apache2

Contagem de linhas em shell script

Acessando mais que 9 parâmetros em shell script

Onde está a linha que preciso editar? [Resolvido]

  

Comentários
[1] Comentário enviado por M4v3r1ck_RJ em 02/07/2007 - 12:04h

Muito ultil para que usa DNS dinamico... :D

[2] Comentário enviado por dnortiz em 12/09/2007 - 13:13h

Cara.. muito útil... Tenho clientes que não possuem ip fixo e assim consigo saber o IP atual.

[3] Comentário enviado por brunosalmito em 21/10/2007 - 11:40h

Muito bom,parabens!!!!

[4] Comentário enviado por jcesarstef em 03/06/2014 - 14:52h

Ótimo script! bom para aprendizado, porem gostaria de acrecentar uma alteração:
curl ifconfig.me #mostra o ip externo do pc em questão



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts