Find file
Fetching contributors…
Cannot retrieve contributors at this time
107 lines (73 sloc) 3.08 KB

Tor.rb: Onion Routing for Ruby

This is a Ruby library for interacting with the Tor anonymity network.


  • Supports checking whether Tor is installed in the user's current PATH, and if it is, returning the version number.
  • Supports parsing Tor configuration files and looking up the values of particular options.
  • Supports querying and controlling a locally-running Tor process using the Tor Control Protocol (TC) over a socket connection.
  • Supports querying the Tor DNS Exit List (DNSEL) to determine whether a particular host is a Tor exit node or not.
  • Compatible with Ruby 1.8.7+, Ruby 1.9.x, and JRuby 1.4/1.5.


require 'rubygems'
require 'tor'

Checking whether Tor is installed and which version it is

Tor.available?                                     #=> true
Tor.version                                        #=> ""

Parsing the Tor configuration file (1)

torrc = Tor::Config.load("/etc/tor/torrc")

Parsing the Tor configuration file (2)"/etc/tor/torrc") do |torrc|
  puts "Tor SOCKS port: #{torrc['SocksPort']}"
  puts "Tor control port: #{torrc['ControlPort']}"
  puts "Tor exit policy:"
  torrc.each('ExitPolicy') do |key, value|
    puts "  #{value}"

Communicating with a running Tor process

Tor::Controller.connect(:port => 9051) do |tor|
  puts "Tor version: #{tor.version}"
  puts "Tor config file: #{tor.config_file}"

Checking whether a particular host is a Tor exit node

Tor::DNSEL.include?("")               #=> true
Tor::DNSEL.include?("")                     #=> false




The recommended installation method is via RubyGems. To install the latest official release of Tor.rb, do:

% [sudo] gem install tor                 # Ruby 1.8.7+ or 1.9.x
% [sudo] gem install backports tor       # Ruby 1.8.1+


To get a local working copy of the development repository, do:

% git clone git://

Alternatively, you can download the latest development version as a tarball as follows:

% wget



Tor.rb is free and unencumbered public domain software. For more information, see or the accompanying UNLICENSE file.