2010年12月12日日曜日

短縮URLを展開するRubyスクリプトを作ってみた

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


#!/usr/bin/env ruby
#-*- coding: utf-8 -*-

require 'uri'
require 'socket'

uri = URI.parse(ARGV[0])
sock = TCPSocket.open(uri.host, uri.port)
sock.printf("GET %s HTTP/1.1\r\n", uri.path)
sock.printf("Host: %s\r\n\r\n", uri.host)
str = String.new
rsize = 512
while dat = sock.recv(rsize)
str << dat
break if dat.size < rsize
end
sock.close

str.each_line{|line|
puts $1 if line =~ /^Location:\s*(.*)$/
}


HTTPを直打ちしてLocationヘッダの内容を取得してるだけなので、ものすごく単純な上にウィルス感染の心配も無し。
bit.lyやamzn.to、t.co、htn.to、t.hachune.netなど、主要(?)な短縮URLサービスで使えることを確認済み。

以下からダウンロードも可能。
http://file.hachune.net/ex_surl.rb.gz


# これを作った後Google Newsを見ていたら、短縮URL展開サービスみたいのがニュースになっていた件

0 件のコメント: