#!/usr/bin/perl use warnings; use strict; # Declarations of scalars and such my ($old_ip_address,$ip_address); my $log_filename = "iplog_perl"; # change directory to root or inform user of his none-rootness chdir "/root/logs" or die "Are you root, dude?: $!"; # open the IP log file to read last IP from it open IPLOG, "<", "$log_filename"; # read from IPLOG handle and get the last IP address saved while ( ) { chomp; $old_ip_address = $_; print "The old IP address was: $old_ip_address", "\n"; } # close filehandle close IPLOG; # calls 'ifconfig' and stores output in $output my $output = `ifconfig`; # $output operations my @lines = split /\n/, $output; # goes through @lines until $line matches the regex for my $line ( @lines ) { if ($line =~ /\s+inet addr:(.*).P-t-P/) { unless (defined($1)) { die "Are you sure your connection is up?", "\n"; } $ip_address = $1; print "Current IP address is: $ip_address", "\n"; } } # checks if ($old_ip_address =~ /$ip_address/) { print "Warning: Old and new IP addresses match. Reconnect.", "\n"; } else { print "Success. IP addresses are different.", "\n"; } # logs current IP open IPLOG, ">", $log_filename; print IPLOG $ip_address; close IPLOG;