CUFP
grinder
snippet
<div class="Description"><p>I'm setting up a new segment in my network that will be managed by DHCP. I estimate that a /22 net, with just over one thousand addresses (1022 to be precise), gives me sufficient space for a dynamic pool and room to spare to allow mapping of known MACs to IP addresses in the future.</p>
<p>To start the ball rolling, I figured I'd just start with just about all of it assigned dynamically, with a bit left over. So, why not 1000 contiguous addresses in a dynamic pool, and 22 left over: one for the router and 21 to play with.</p>
<p>Ok, so the start address is easy, but how to find the end address quickly and make sure I don't make a mistake? [cpan://NetAddr::IP] to the rescue.</p>
<p>I actually did this as a one-liner, but this is a bit more readable.</p>
<p>Now to edit my <tt>dhcpd.conf</tt> file...</p></div>
<CODE>
#! /usr/local/bin/perl -wl
use NetAddr::IP;
my $first = shift || '172.17.220.1';
my $nr = shift || 1000;
my $end = NetAddr::IP->new($first)->numeric + $nr;
print $end->addr;
# prints 172.17.223.233
</CODE>