Traceroute to Graphviz
From Federal Burro of Information
Jump to navigationJump to search
Traceroute from various places to your destination, dump the results to a file.
then awk it up yo!
awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"red\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"green\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"blue\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"black\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"orange\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"salmon\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"yellow\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"darkgreen\"];"} ; last=$3"\\n"$2}' trace1.out awk '{if ( length(last) > 0 && ( $2 != "*" ) ) {print "\"" last "\"->\"" $3"\\n"$2"\" [ color=\"thistle2\"];"} ; last=$3"\\n"$2}' trace1.out
send all this awk output to a file, then wrap it in a graphviz header, and close the graph... then run graphviz on it... and .. well voila pending.
for vi find replace:
- s:^:awk '{if ( length(last) > 0 \&\& ( $2 != "*" ) ) {print "\\"" last "\\"->\\"" $3"\\\\n"$2"\\" [ color=\\":g
- s:<control-v><tab>:\\"];"} ; last=$3"\\\\n"$2}' :g
escapes are escaped, sigh.