11 |
sub lines { |
sub lines { |
12 |
my ( $object ) = @_; |
my ( $object ) = @_; |
13 |
|
|
14 |
my $debug = server::debug; |
my $debug = server::debug(); |
15 |
|
|
16 |
$object ||= 'link'; |
$object ||= 'link'; |
17 |
|
|
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 |
|
|
124 |
|
my $server = server::as_hash_for $ip; |
125 |
|
|
126 |
|
my $i = to_int($ip) & to_int($server->{netmask}); |
127 |
|
my $s = to_int($server->{ip}) & to_int($server->{netmask}); |
128 |
|
|
129 |
|
if ( $i == $s ) { |
130 |
|
$i = to_int($ip) & ( to_int($server->{netmask}) ^ 0xffffffff ); |
131 |
|
return 1 if ( $i >= $server->{ip_from} && $i <= $server->{ip_to} ); |
132 |
|
} |
133 |
|
return 0; |
134 |
} |
} |
135 |
|
|
136 |
1; |
1; |