You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.6 KiB
73 lines
1.6 KiB
#!/bin/sh
|
|
#$Id$
|
|
|
|
#
|
|
# Script created by: Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18
|
|
# Donated to the public domain.
|
|
#
|
|
# This script transforms the output of "ip" into more readable text.
|
|
# "ip" is the Linux-advanced-routing configuration tool part of the
|
|
# iproute package.
|
|
#
|
|
|
|
test "X-h" = "X$1" && echo "Usage: $0 [tablenr [raw ip args...]]" && exit 64
|
|
|
|
test -z "$*" && set 0
|
|
|
|
ip route list table "$@" |
|
|
while read network rest
|
|
do set xx $rest
|
|
shift
|
|
proto=""
|
|
via=""
|
|
dev=""
|
|
scope=""
|
|
src=""
|
|
table=""
|
|
case $network in
|
|
broadcast|local|unreachable) via=$network
|
|
network=$1
|
|
shift
|
|
;;
|
|
esac
|
|
while test $# != 0
|
|
do
|
|
case "$1" in
|
|
proto|via|dev|scope|src|table)
|
|
key=$1
|
|
val=$2
|
|
eval "$key='$val'"
|
|
shift 2
|
|
;;
|
|
dead|onlink|pervasive|offload|notify|linkdown|unresolved)
|
|
shift
|
|
;;
|
|
*)
|
|
# avoid infinite loop on unknown keyword without value at line end
|
|
shift
|
|
shift
|
|
;;
|
|
esac
|
|
done
|
|
echo "$network $via $src $proto $scope $dev $table"
|
|
done | awk -F ' ' '
|
|
BEGIN {
|
|
format="%15s%-3s %15s %15s %8s %8s%7s %s\n";
|
|
printf(format,"target","","gateway","source","proto","scope","dev","tbl");
|
|
}
|
|
{ network=$1;
|
|
mask="";
|
|
if(match(network,"/"))
|
|
{ mask=" "substr(network,RSTART+1);
|
|
network=substr(network,0,RSTART);
|
|
}
|
|
via=$2;
|
|
src=$3;
|
|
proto=$4;
|
|
scope=$5;
|
|
dev=$6;
|
|
table=$7;
|
|
printf(format,network,mask,via,src,proto,scope,dev,table);
|
|
}
|
|
'
|