Chris Knipe wrote:
Lo everyone,

Hello,

Can someone please give me a regex to parse the following...

Flags: X - disabled, I - invalid, D - dynamic, J - rejected,
C - connect, S - static, r - rip, o - ospf, b - bgp
 #    DST-ADDRESS        G GATEWAY         DISTANCE INTERFACE
 0  S 0.0.0.0/0          r 198.19.0.2      1        SERVER-CORE
 1  S 196.0.0.0/8        r 165.146.192.1   1        National Gateway
 2 DC 198.19.1.0/24      r 0.0.0.0         0        WIRELESS-CORE
 3 Ib 198.19.0.0/24      u 0.0.0.0         200      (unknown)
 4 DC 198.19.0.0/24      r 0.0.0.0         0        SERVER-CORE
 5 DC 192.168.1.0/24     r 0.0.0.0         0        INTERNAL-CORE
 6 DC 165.146.192.1/32   r 0.0.0.0         0        National Gateway
[EMAIL PROTECTED] >


I want the regex to return the rule number for all route entries that is static (S Flag) on Interface "National Gateway". For added security, I'd like it if the regex will also only return true if the gateway address is part of 165.165.0.0/8 or 165.146.0.0/8

Basically, I need to use the rule number in another command to delete
the route entry... So I presume I'll need to extract it via the regex

I take it that the first column is the rule number?

#   UNTESTED

my ( $rule_number ) =
    m{^
       \s*                       # start with optional whitespace
      (\d+)                      # capture the first column
       \s+
       S                         # second col. must be 'S'
       \s+
       \S+
       \s+
       \S+
       \s+
       165\.(?: 146 | 165 )      # fifth col. must be correct IP range
            (?: \.
                (?: [1-9]?\d | 1\d\d | 2[0-4]\d | 25[0-5] )
            ){2}
       \s+
       \d+
       \s+
       National[ ]Gateway        # last (seventh) column
     $}x;

#   UNTESTED



John
--
use Perl;
program
fulfillment

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to