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.