Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'rubydns'
- require_relative 'ad_functions'
- INTERFACES = [
- [:udp, "0.0.0.0", 53],
- [:tcp, "0.0.0.0", 53]
- ]
- Name = Resolv::DNS::Name
- IN = Resolv::DNS::Resource::IN
- # Use upstream DNS for name resolution.
- UPSTREAM = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])
- def self.run
- # Start the RubyDNS server
- RubyDNS::run_server(:listen => INTERFACES) do
- $adservers_array.each do |adserver|
- match(adserver, IN::A) do |transaction|
- transaction.respond!("0.0.0.0")
- end
- end
- # Default DNS handler
- otherwise do |transaction|
- transaction.passthrough!(UPSTREAM)
- end
- end
- end
- run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement