Perl ネタ
【Perl おぼえがき】whois 情報からドメイン名の有効期限だけを取得したい。その 4。

TLD が .com, .net など whois 情報で有効期限の表示が "Expiration Date:" とでるもの、.org, info のように "Expiry Date:" とでるもの、そして JP ドメイン名で英語表記から "Expires on" とマッチさせるもの。
上記の使い分けでひと通り有効期限だけをマッチさせて取得できたつもりでおりましたが、よくよく考えると JP ドメイン名で "Expires on" とでるのは、汎用 JP だけで、属性 JP の場合はまた違う表示であることに気づきました。
2015/05/18
属性 JP もドメイン名の末尾に "/e" をつけることで英語表記で取得することがわかっているので、マッチさせる文字列だけを変更するだけで汎用 JP と属性 JP と使い分けることができそうです。
use strict;
use warnings;
use Net::Whois::Raw;
my $dom = "google.co.jp";
my $ex = "State(.*)Connected";
my $w = `whois -h whois.jprs.jp $dom/e`;
my @w = split(/\n/, $w);
foreach my $date (@w) {
next if ($date =~ /$ex/);
$date =~ s/(.*)$ex\s*//;
$date =~ s/\(|\)//g;
print "$date\t$dom";
}
日付の表示形式は汎用 JP と同じなのでマッチさせる文字列を調整するだけ有効期限を取得できます。
.co.jp だけでなくても属性 JP であればマッチさせる文字列は同じでいけるはずです。