Pular para o conteúdo

Script para enviar ip para o email

Dica publicada em Shell Script / Introdução
FBSD Foundation theunixer
Hits: 13.695 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Criando uma ISO do openBSD 4.1

Squid autenticando via radius

Otimizando Digitação no Terminal Bash

Como excluir um determinado kernel no Ubuntu

Como criar um ALIAS

Contagem regressiva no terminal

Capturando screenshots com Shell Script

#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

Entre na sua conta para comentar.