Re: dhcpd.leases parser


Subject: Re: dhcpd.leases parser
From: Arthur Corliss (corliss@odinicfoundation.org)
Date: Fri Nov 02 2001 - 14:50:50 AKST


On Fri, 2 Nov 2001, Mike Barsalou wrote:

>
> Anyone have or know of a dhcpd.leases file parser that will turn the
> dhcpd.leases file into a comma delimited file?
>
> I want to get the MAC address, computer name, IP address and maybe a few
> other items.
>
> Can anyone help?

cat /var/state/dhcp/dhcpd.leases | dhcp2csv.pl

#!/usr/bin/perl

my ($line, @fields, $index, $value);

while (defined ($line = <STDIN>)) {
        chomp($line);
        $line =~ s/^\s*//;
        if ($line =~ /^lease (\S+)/) {
                ($index, $value) = (0, $1);
        } elsif ($line =~ /^hardware ethernet (.+);/) {
                ($index, $value) = (1, $1);
        } elsif ($line =~ /^client-hostname "(.+)";/) {
                ($index, $value) = (2, $1);
        }

        if (defined($index) && defined ($fields[$index])) {
                while (scalar @fields < 3) { $fields[scalar @fields] = '' };
                print join(', ', @fields), "\n";
                @fields = ();
        }

        $fields[$index] = $value if defined($index);
        $index = undef;
}

if (scalar @fields) {
        while (scalar @fields < 3) { $fields[scalar @fields] = '' };
        print join(', ', @fields), "\n";
}

exit 0;

        --Arthur Corliss
          Bolverk's Lair -- http://arthur.corlissfamily.org/
          "Live Free or Die, the Only Way to Live" -- NH State Motto



This archive was generated by hypermail 2a23 : Fri Nov 02 2001 - 14:55:47 AKST