Skip to content
/ resolv Public

A thread-aware DNS resolver library written in Ruby

License

Notifications You must be signed in to change notification settings

ruby/resolv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

05c8ccd · Feb 5, 2025
Jan 20, 2025
Apr 3, 2020
Feb 5, 2025
Feb 4, 2025
Feb 4, 2025
May 6, 2024
Jan 17, 2025
Jun 11, 2024
Jun 11, 2024
Dec 10, 2024
Dec 29, 2024
Dec 10, 2024
Jul 16, 2024

Repository files navigation

Resolv

Resolv is a thread-aware DNS resolver library written in Ruby. Resolv can handle multiple DNS requests concurrently without blocking the entire Ruby interpreter.

Installation

Add this line to your application's Gemfile:

gem 'resolv'

And then execute:

bundle install

Or install it yourself as:

gem install resolv

Usage

p Resolv.getaddress "www.ruby-lang.org"
p Resolv.getname "210.251.121.214"

Resolv::DNS.open do |dns|
  ress = dns.getresources "www.ruby-lang.org", Resolv::DNS::Resource::IN::A
  p ress.map(&:address)
  ress = dns.getresources "ruby-lang.org", Resolv::DNS::Resource::IN::MX
  p ress.map { |r| [r.exchange.to_s, r.preference] }
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/resolv.