簡単Proxyサーバ

http://jp.rubyist.net/magazine/?0002-WEBrickProxy
を参考に、リクエストのヘッダーに特別な値を設定するHTTPのProxyサーバを作ってみた。

#!/usr/bin/env ruby

require 'webrick'
require 'webrick/httpproxy'

VALUE = "XXXXXXXXXXXXX"

class CustomProxyServer < WEBrick::HTTPProxyServer
  def choose_header(src, dst)
    dst["CUSTOM_KEY"] = VALUE
    super
  end
end

# プロキシサーバオブジェクトを作る
s = CustomProxyServer.new(:Port => 8080)

# SIGINT を捕捉する。
Signal.trap('INT') do
  # 捕捉した場合、シャットダウンする。
  s.shutdown
end

# サーバを起動する。
s.start

ブラウザとかのプロ棋士サーバーに、127.0.0.1 の ポート8080 を設定すると、ヘッダーには"HTTP_CUSTOM_KEY"というキーに、"XXXXXXXXXXXXX"という値が渡されます。

うおー、ちょーかんたーん!