This is a Ruby gem for interacting with Tor exit addresses. You'll be able to find all the existing exit nodes, retrieving the nodes from https://check.torproject.org/exit-addresses.
Add this line to your application's Gemfile:
gem 'tor-addresses'
And then execute:
$ bundle
Or install it yourself as:
$ gem install tor-addresses
You can retrieve all the existing exit nodes.
addresses_list = Tor::Addresses.list
# => [
# #<Tor::Addresses::Record:0x007f92e9b80d98 @line="ExitAddress 162.247.72.201 2018-05-28 13:04:26">,
# ...
# #<Tor::Addresses::Record:0x007f92e9bfa468 @line="ExitAddress 153.126.210.34 2018-05-28 08:13:57">
# ]
Those Tor::Addresses::Record
object respond to address
and found_at
.
addresses_list.first.address
# => '162.247.72.201'
addresses_list.first.found_at.to_s
# => '2018-05-28T13:04:26+00:00'
In order to keep the main method reusable, we've decided to just return an Array.
## You can get the number of nodes
addresses_list.count
# => 979
## You can check if an IP is a Tor exit node
addresses_list.any? { |record| record.address == '162.247.72.201' }
# => true
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
Bug reports and pull requests are welcome on GitHub at https://github.com/Badiapp/tor-addresses-gem.
The gem is available as open source under the terms of the MIT License.