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);
}
#
# 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.