2011年01月03日 06:00 [Edit]

perl - 短縮URLを一行で展開する

camel

Perlですから。

Schwarze SQ: 短縮URLを展開するRubyスクリプトを作ってみた
なにやら短縮URLを使い、不正なサイトにアクセスさせウィルスに感染させる行為が流行っているらしい(まぁ想定の範囲内だが)。そこで、短縮URLを展開できるrubyスクリプトをちょちょっと作ってみた。

perl -MLWP::UserAgent -lE \
  'say LWP::UserAgent->new->head(shift)->request->uri' \
  http://j.mp/dankogai

id:amachangが昔こさえてくれたこの短縮URLもhttp://blog.livedoor.jp/dankogai/と展開されるはずです。

もう少しverboseにやると、こんな感じでしょうか。

use 5.010;
use strict;
use warnings;
use LWP::UserAgent;

say expand_uri('http://j.mp/dankogai');

sub expand_uri{
  my $uri = shift;
  my $ua  = LWP::UserAgent->new;
  my $res = $ua->head($uri);
  die $res->status_line unless $res->is_success;
  return $res->request->uri;
}

Enjoy!

Dan the Perl Monger with too Many URLs Shortened


この記事へのトラックバックURL

この記事へのトラックバック
Schwarze SQ: 短縮URLを展開するRubyスクリプトを作ってみた HTTPを直打ちしてLocationヘッダの内容を取得してるだけなので、ものすごく単純な上にウィルス感染の心配も無し いやいやいや、それはないわ。 Net::HTTP#head つかいなさいよ。GETメソッドなんてつかうんじゃない...
RubyでURL短縮展開のコードがきもいです…【cod.note】at 2011年01月03日 12:52
Schwarze SQ: 短縮URLを展開するRubyスクリプトを作ってみた HTTPを直打ちしてLocationヘッダの内容を取得してるだけなので、ものすごく単純な上にウィルス感染の心配も無し いやいやいや、それはないわ。 Net::HTTP#head つかいなさいよ。GETメソッドなんてつかうんじゃない...
RubyでURL短縮展開のコードがきもいです…【cod.note】at 2011年01月03日 12:51