Script para enviar ip para o email

Publicado por FBSD Foundation em 30/06/2007

[ Hits: 13.067 ]

 


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="meu@email.com.br meuoutro@email.com"

#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

Fazendo comparações no shell com números de ponto flutuante

Renomear arquivos ou diretórios iniciados por "-"

Aulas Shell Script do zero - Parte 9

Negação Condicional no IF

Tornando seus scripts amigáveis (executáveis)

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts