121 |
sub in_dhcp_range { |
sub in_dhcp_range { |
122 |
my $ip = shift; |
my $ip = shift; |
123 |
|
|
124 |
return 1 if -e "$server::conf/ip/$ip/dhcpd.pl"; |
my $server = server::as_hash_for $ip; |
125 |
|
|
126 |
my $i = to_int($ip) & to_int($server::netmask); |
my $i = to_int($ip) & to_int($server->{netmask}); |
127 |
my $s = to_int($server::ip) & to_int($server::netmask); |
my $s = to_int($server->{ip}) & to_int($server->{netmask}); |
128 |
|
|
129 |
if ( $i == $s ) { |
if ( $i == $s ) { |
130 |
$i = to_int($ip) & ( to_int($server::netmask) ^ 0xffffffff ); |
$i = to_int($ip) & ( to_int($server->{netmask}) ^ 0xffffffff ); |
131 |
return 1 if ( $i >= $server::ip_from && $i <= $server::ip_to ); |
return 1 if ( $i >= $server->{ip_from} && $i <= $server->{ip_to} ); |
132 |
} |
} |
133 |
return 0; |
return 0; |
134 |
} |
} |