mirror of
https://gitlab.com/shorewall/code.git
synced 2025-08-17 12:16:58 +02:00
Add edits for IP addresses and ranges
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@6287 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
@ -31,6 +31,8 @@ use strict;
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT = qw(
|
||||
validate_net
|
||||
validate_range
|
||||
ip_range_explicit
|
||||
);
|
||||
our @EXPORT_OK = qw( );
|
||||
@ -48,6 +50,16 @@ sub valid_address( $ ) {
|
||||
1;
|
||||
}
|
||||
|
||||
sub validate_net( $ ) {
|
||||
my ($net, $vlsm) = split '/', $_[0];
|
||||
|
||||
if ( defined $vlsm ) {
|
||||
fatal_error "Invalid VLSM ($vlsm)" unless $vlsm =~ /^\d+$/ && $vlsm <= 32;
|
||||
}
|
||||
|
||||
fatal_error "Invalid IP address ($net)" unless valid_address $net;
|
||||
}
|
||||
|
||||
sub decodeaddr( $ ) {
|
||||
my $address = $_[0];
|
||||
|
||||
@ -74,6 +86,18 @@ sub encodeaddr( $ ) {
|
||||
$result;
|
||||
}
|
||||
|
||||
sub validate_range( $$ ) {
|
||||
my ( $low, $high ) = @_;
|
||||
|
||||
fatal_error "Invalid IP address ( $low )" unless valid_address $low;
|
||||
fatal_error "Invalid IP address ( $high )" unless valid_address $high;
|
||||
|
||||
my $first = decodeaddr $low;
|
||||
my $last = decodeaddr $high;
|
||||
|
||||
fatal_error "Invalid IP Range ( $low-$high )" unless $first <= $last;
|
||||
}
|
||||
|
||||
sub ip_range_explicit( $ ) {
|
||||
my $range = $_[0];
|
||||
my @result;
|
||||
|
Reference in New Issue
Block a user