奇科電腦 回奇科電腦首頁奇科電腦LPI課程資訊奇科電腦Embedded課程資訊奇科電腦Cisco課程資訊奇科電腦Programming課程資訊奇科電腦Smartphone App課程資訊
Tech Tips14  Use Perl to find out routing difference for comparing OSPF routing rules.

Author: Ben|Date: 2008/08/25|Back to Tech Tips

#!/usr/bin/perl

$route_rule1_ref = analyze_route ("router.txt");
$route_rule2_ref = analyze_route ("router1.txt");

sub analyze_route
{
 my ( $file ) = @_ ;
 my @router_rules = ();
 open ( R, "$file" );

 $line_count = 0;
 while ( <R> )
 {
  chomp;
  $whole_line = '';

  if ( /^O.*\s$/ && $line_count == 0 )
  {
    $first_part = $_ ;
    $line_count++ ;
  }
  elsif ( /^\s+?(\[.*)/ && $line_count == 1 )
  {
    $whole_line = $first_part.' '.$1 ;
    $line_count = 0 ;
  }
  elsif ( /^O/ )
  {
    $whole_line = $_ ;
  }
  else
  {
    $whole_line = '' ;
    $line_count = 0 ;
  }
  push ( @route_rules, $whole_line ) if $whole_line ;
 }
 close ( R );
 return \@route_rules;
}

foreach $rule ( @$route_rule1_ref )
{
  foreach $rule1 ( @$route_rule2_ref )
  {
   last if $rule eq $rule1 ;
   print "$rule\n" if ( $route_rule2_ref->[-1] eq $rule1 && $rule ne $rule1 );
  }
}


Best Browse: 1024x768 Copyright 2010 GeeGo Systems, Ltd.
service@geego.com.tw|DL: 0800-296-296|3F., No.60, Zhulun St., Zhongshan Dist., Taipei City 104, Taiwan (R.O.C.)|02-2711-6373