naoki86star

インターネットの片隅でなにかしら書いてみる

traceroute に色をつけてみる

linuxにgrc ってコマンドがあるの知って、それに関連して思ったこと書きだします。これ使うとtraceroute の結果にお手軽に色つきます。

# grpcではない

 MSDOSのころから、console上のテキストに色がつくのは楽しかった。エスケープシーケンスってのはなにで仕様決まっているのかは全く知らんかったけどもascii 27(0x1e)+[ +色コードで文字に色がついてくれる。ネットもない時代に、だいたい人の端末とかでたまたま見たのを暗記するかでまねっこでお覚えてた。まあ、やることはプロンプトに好きな色を付ける程度。

 で、最近、grcというコマンドを知った。

command | grcat configure_for_command

みたいな構文が典型的パターン利用法。

 で、何に使いたくなったか。

 日頃traceroute打ってても、意外にあんまり珍しいIPはでてこない。AS2914のIPが鉄板で途中経路によくでてくる感じ。
これ以外のtier1のIPにお目にかかるのもすごく少ない。

 でてきたときすぐに気が付けるよう、tier1のASNに専用色をつけることができないかと、、ネタ/usr/share/grc/conf.tracerouteを流用してみた。使い方はこんなんで、毎回パイプも面倒なのでshellにまとめておくとか。

$ traceroute IP | grc conf.traceroute_tier1

conf.traceroute_tier1 

# ip number
regexp=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
colours=magenta
-
# ipv6 number
regexp=(([0-9a-fA-F]{1,4})?\:\:?[0-9a-fA-F]{1,4})+
colours=magenta
-
# time
regexp=\d+\.?\d*(?=\sms)
colours=green
-
# ms
regexp=\bms\b
colours=yellow
-
# AS(other)
regexp=\[AS[0-9]{1,6}\]
colours=blue
-
# AS(tier1)
regexp=\[AS(2914|7018|209|3356|3549|4323|3320|3257|4436|5580|8928|286|6830|5511|3491|1239|6453|6762|12956|1299|701|702|703|2828|6461)\]
colours=cyan
-
#
regexp=\*\b\*\b\*
colours=white