foreach my log (@blog)

Perl ネタ

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




whois



TLD が .com, .net など whois 情報で有効期限の表示が "Expiration Date:" とでるもの、.org, info のように "Expiry Date:" とでるもの、そして JP ドメイン名で英語表記から "Expires on" とマッチさせるもの。





上記の使い分けでひと通り有効期限だけをマッチさせて取得できたつもりでおりましたが、よくよく考えると JP ドメイン名で "Expires on" とでるのは、汎用 JP だけで、属性 JP の場合はまた違う表示であることに気づきました。



属性 JP もドメイン名の末尾に "/e" をつけることで英語表記で取得することがわかっているので、マッチさせる文字列だけを変更するだけで汎用 JP と属性 JP と使い分けることができそうです。



#!/usr/bin/perl

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 であればマッチさせる文字列は同じでいけるはずです。







同じカテゴリー(Perl ネタ)の記事
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
TI-DA
てぃーだブログ
プロフィール
chinji
chinji

PAGE TOP ▲