in reply to Send your IP
Something like this may be better:
#!/usr/bin/perl use warnings; use strict; use Tie::File; use LWP::Simple; use Sys::Syslog qw( :DEFAULT setlogsock ); my $file = '/root/script/myip.txt'; my $emailadd = 'your@email.com'; my $fromadd = 'ipwatch@yourmachine'; my $current_ip = get( 'http://www.chisono.it/ip.asp' ) or do { logit( 'err', "Cannot retrieve the IP address\n" ); exit 1; }; $current_ip =~ s/\s+$//; tie my @read_ip, 'Tie::File', $file or do { logit( 'err', "Cannot open $file: $!\n" ); exit 2; }; if ( $read_ip[ 0 ] eq $current_ip ) { logit( 'info', "Address not changed\n" ); exit 0; } logit( 'info', "Address changed: old IP: $read_ip[0] ; New IP: $curren +t_ip\n" ); $read_ip[ 0 ] = $current_ip; untie @read_ip; # 0 == system qq(mailx -s "IP changed!" -a "From: IPWatch <$fromadd>" +$emailadd < myip.txt) or do { # # Update -- changed "< myip.txt" to "< $file" # 0 == system qq(mailx -s "IP changed!" -a "From: IPWatch <$fromadd>" $e +mailadd < $file) or do { logit( 'err', "Cannot send the email!\n" ); exit 3; }; sub logit { my ( $priority, $msg ) = @_; return unless $priority =~ /^(?:info|err|debug)$/; setlogsock( 'unix' ); openlog( $0, 'pid,cons', 'user' ); syslog( $priority, $msg ); closelog(); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Send your IP
by fixed (Novice) on May 23, 2009 at 09:18 UTC |