111 |
} |
} |
112 |
|
|
113 |
sub to_int { |
sub to_int { |
114 |
pack( 'C*', split(/\./, shift) ) |
unpack( 'N', pack( 'C*', split(/\./, shift) ) ) |
115 |
} |
} |
116 |
|
|
117 |
sub from_int { |
sub from_int { |
118 |
join( '.', unpack('C4', shift) ) |
join( '.', unpack('C4', pack('N',shift)) ) |
119 |
|
} |
120 |
|
|
121 |
|
sub in_dhcp_range { |
122 |
|
my $ip = shift; |
123 |
|
my $i = to_int($ip) & to_int($server::netmask); |
124 |
|
my $s = to_int($server::ip) & to_int($server::netmask); |
125 |
|
|
126 |
|
if ( $i == $s ) { |
127 |
|
$i = to_int($ip) & ( to_int($server::netmask) ^ 0xffffffff ); |
128 |
|
return 1 if ( $i >= $server::ip_from && $i <= $server::ip_to ); |
129 |
|
} |
130 |
|
return 0; |
131 |
} |
} |
132 |
|
|
133 |
1; |
1; |