Perl – readresacja w DHCP

Prosty skrypt, który readresuje wpisy w DHCP:

#!/usr/bin/perl

#
#  readresor.pl
#
#  Created by  on 2008-09-15.
#


use Socket;

sub ip2ipn { return unpack 'N', inet_aton(shift); }
sub ipn2ip { return inet_ntoa( pack 'N', shift ); }

my $FILE;
my $err = 0;

if($ARGV[0] eq '') { $err = 1; print qq(Brak pliku wejsciowego \n); }
if($ARGV[1] eq '') { $err = 1; print qq(Brak pierwszego adresu ip \n); }
if($ARGV[2] eq '') { $err = 1; print qq(Brak typu 1 - increment 2 - decrement \n); }


if($err eq 1)
{
    print qq(Usage: \n \t readresor.pl <plik_dhcp> <start_ip> \n\n\n);
}
else
{
    open(FILE, $ARGV[0]);
    $first_ip = $ARGV[1];
    $ipn = ip2ipn($first_ip);
    while(<FILE>)
    {
        if(/^(.+)(fixed-address)(.+)(;)/)
        {
            $ip = ipn2ip($ipn);
            print qq(\t\tfixed-address $ip \n);
            if($ARGV[2] eq "1")
            {
                $ipn++;
            }
            elsif($ARGV[2] eq "2")
            {
                $ipn--;
            }
        }
        else
        {
            print qq($_);
        }
    }
    print qq(\n);
}

Smacznego.