in reply to Sifting through firewall rules using a script
Depending on the number of IPs it might be slightly better performance if you used Regexp::Common and $RE{net}{IPv4} to extract out IP-address-looking-things from rule lines, then checked those against a hash for hits of interesting ones. Rather than running n different regular expressions over each firewall rule line n times, this runs one over only as many times as necessary to get out the IP-ish things in any given rule line and then you're doing a (much faster) hash existence test to see if that IP is a wanted one.
use Regexp::Common qw( net ); my %interesting_ips; while( <IPS> ) { chomp; $interesting_ips{ $_ } = 1; } while( my $fw_line = <RULES> ) { while( my( $addr ) = $fw_line =~ m{($RE{net}{IPv4})}g ) { say qq{$.: found interesting address '$addr'} if exists $interesting_ips{ $addr }; } }
The cake is a lie.
The cake is a lie.
The cake is a lie.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sifting through firewall rules using a script
by networkdude (Initiate) on Jan 10, 2022 at 01:17 UTC | |
by Fletch (Bishop) on Jan 10, 2022 at 01:51 UTC | |
by networkdude (Initiate) on Jan 10, 2022 at 21:01 UTC | |
by networkdude (Initiate) on Jan 10, 2022 at 20:16 UTC | |
by networkdude (Initiate) on Jan 11, 2022 at 20:33 UTC | |
by networkdude (Initiate) on Jan 10, 2022 at 01:31 UTC | |
by networkdude (Initiate) on Jan 11, 2022 at 01:02 UTC |