Avisar por e-mail se o IP da conexão ADSL mudar

Publicado por Fábio Berbert de Paula 03/10/2003

[ Hits: 11.788 ]

Homepage: https://fabio.automatizando.dev

Download ip_monitor.pl




Como o nome já diz, este script serve para me enviar um e-mail todas as vezes que o endereço IP da conexão ADSL de um servidor que você administre remotamente mude. O script é inteligente, só envia um e-mail por cada IP novo e está configurado para ser gravado em /usr/local/monitor/. Agende o script para rodar a cada 5 minutos no crontab e zé fini!

  



Esconder código-fonte

#!/usr/bin/perl
# ip_monitor.pl
# Usado para enviar o endereco IP da conexao ADSL por e-mail
# para o administrador do sistema.
# Caso o IP esteja down, ele tenta reiniciar o servico ADSL
# automaticamente.
#
# Programador por: Fabio Berbert de Paula
# <fabio@vivaolinux.com.br>
# http://www.vivaolinux.com.br

use strict;

# variaveis globais - configure de acordo com suas prefs.
my $meu_email  = "login\@dominio.com";
my $base_dir   = "/usr/local/monitor/";
my $ip_file    = $base_dir . "last_ip.txt";
my $last_ip    = 0;
my $current_ip = "";

if (-f $ip_file) {
   open(R, $ip_file);
   $last_ip = <R>; chomp($last_ip);
   close(R);
}

my $ifconfig = `/sbin/ifconfig ppp0`;
if ($ifconfig =~ /inet addr:(.*)P-t-P/) {
   $current_ip = $1;
   $current_ip =~ s/ //g;
} else {
   system("/sbin/adsl start");
}

if ($last_ip ne $current_ip && $current_ip) {
   #print "entrei\n";
   open(W, "> $ip_file");
   print W $current_ip;
   close(W);

   if ($last_ip!=0) {
      # enviar email com o ip
      system("echo $current_ip | /usr/sbin/sendmail $meu_email");
   }
} 

Scripts recomendados

Capturar imagens de um site

PDF completo com todas as páginas do Diário Oficial do Estado de Goiás

Pesquisar palavras no Diário Oficial da União

Synner Novo Sys(TCP) Flooder em Perl

Sarg Diario


  

Comentários
[1] Comentário enviado por gustavo_marcon em 04/10/2003 - 10:49h

Olá tenho um adsl da brturbo e gostaria de saber se posso pendurar um servidor neste link...

Ele usa dhcp, esse script pode ser útil p/ mim??

[2] Comentário enviado por fabio em 04/10/2003 - 12:50h

Seu endereço IP fica atribuído em qual interface de rede? eth0, eth1, ppp0, ...? Basta localizar no arquivo a linha "/sbin/ifconfig ppp0" e alterar (se necessário) para a interface de rede que lhe convém.

Depois vá até a linha:
system("/sbin/adsl start");
e mude o comando /sbin/adsl start para o comando que você dá para iniciar o serviço da brturbo, se é que o comando já não é esse.

[]'s,
Fábio

[3] Comentário enviado por ysidoro em 08/10/2003 - 10:00h

Acho que o comando 'mail' do mailx é melhor e vc pode dar formato ao message, inclusso enviar cc: para outros enderecos:
# enviar email com o ip
system("echo $current_ip | /usr/bin/mail -s $current_ip $meu_email");
desste jeito vc tem a IP no subject.

[4] Comentário enviado por fabio em 08/10/2003 - 10:13h

Boa idéia! É que na verdade eu usava originalmente o /usr/sbin/exim (uso MTA Exim), mudei para sendmail na hora de publicar para melhorar a portabilidade do script, mas com certeza o mail é melhor para isso. Valeu!

[5] Comentário enviado por abelmt em 25/02/2004 - 11:22h

Oi Eu tenho um mandrake securety firewall e nele eu tenho um speedy home. Gostaria de saber como que eu adiciono este script sendo que no meu mandrake não tem a pasta monitor Obrigado

[6] Comentário enviado por hfkc em 22/03/2004 - 08:53h

O script esta retornando o seguinte erro.
(Missing operator before fconfig?)
syntax error at ./ip_monitor.pl line 27, near "/sbin/ifconfig ppp0"
Execution of ./ip_monitor.pl aborted due to compilation errors.


HFKC

[7] Comentário enviado por hfkc em 22/03/2004 - 08:53h

O script esta retornando o seguinte erro.
(Missing operator before fconfig?)
syntax error at ./ip_monitor.pl line 27, near "/sbin/ifconfig ppp0"
Execution of ./ip_monitor.pl aborted due to compilation errors.


HFKC

[8] Comentário enviado por sonicsunday em 19/04/2006 - 15:24h

Aparentemente já está tudo funcionando, tudo executa normalmente, porém eu não recebo os e-mails. Verifiquei no log dos meus e-mails e reparei q ele não está sendo gerado. Acompanhei mais um pouco e percebi que não é criado o arquivo “last_ip.txt”. Para efeito de teste resolvi gerar o arquivo manualmente e dar acessos de escrita a ele, mas mesmo assim ele não é alterado.



Estou utilizando o Red Rat 9 e ele está configurado pra ser gateway e servidor de DNS apenas

[9] Comentário enviado por medeiros64 em 28/05/2006 - 15:21h

e ai fabio queria uma maozinha tem como fazer esse escrip escrever um arquivo texto ??? tipo só queria q ele subistui-se o mesmo arquivo.txt


alguema ai pode me ajudar ??? já tento fazer com q mei ip fique em um txt faz tempo

valew galera



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts