I ♥ WordPress

dig の出力に色をつける dig-color(perl版)
2007/07/04 02:09 posted by kunkichi

せっかく『あわせて読みたい』の画像をはっつけたので、どんなサイトが「あわせて」読まれてるのかな?ということで、リンクをたどってみたら、こういうのを見つけました。

cl.pocari.org - dig の出力に色をつける dig-color

dig の出力に色をつける dig-color というのを作ってみました.
リソースレコードタイプは A/NS/CNAME/SOA/MX のみにしか対応していませんので,そのほかのタイプが必要であれば追加してください.

こちらはRubyで書かれているようで、Rubyが入ってない環境は結構あるかなと思ったので、Perlで書き換えてみました。

#!/usr/bin/perl -w
 
use strict;
use warnings;
 
my %colors = (
    "section" => "02;01",
    "comment" => "37",
    "normal"  => "00",
    "A"       => "32",
    "NS"      => "34",
    "CNAME"   => "36",
    "SOA"     => "33",
    "MX"      => "31",
);
 
my @return = readpipe( "dig " . join( " ", @ARGV ));
foreach my $line ( @return ){
    my $color = $colors{"normal"};
    if( $line =~ /^;;.+SECTION:$/ ){
        $color = $colors{"section"};
    }elsif( $line =~ /^;/ ){
        $color = $colors{"comment"};
    }elsif( $line =~ /^(.+\s)(SOA|NS|A|MX|CNAME)(\s.+)$/ ){
        $color = $colors{"$2"};
        # レコードタイプのみに色を付ける場合
        #$line = sprintf "%s\e[%sm%s\e[00m%s\n", $1, $colors{"$2"} ,$2, $3;
    }
    printf "\e[%sm%s\e[00m", $color, $line;
}

ま、単にPerlの書き方に変えただけなんだけど。変数とか配列とかの書き方とか、あとpopen使ったことないのでreadpipeに置き換えただけみたいな、本当にその程度。

むしろ、出力に色を付けるのは詳しく知らなかったので、その辺はいじらないでそのまま動かしたら、サラッと動いちゃったので本人がびっくり、みたいな(爆)

結果はこんな感じ。

dig の出力に色をつける dig-color(perl版)

色がつくだけで何気に見やすくなるんですね。オリジナルの作者の方のアイデアに感謝。

コメント&トラックバック

トラックバックURL





このページの先頭へ