Advertisement
Guest User

Untitled

a guest
Jan 4th, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env ruby
  2. require 'rubydns'
  3. require_relative 'ad_functions'
  4.  
  5. INTERFACES = [
  6.     [:udp, "0.0.0.0", 53],
  7.     [:tcp, "0.0.0.0", 53]
  8. ]
  9. Name = Resolv::DNS::Name
  10. IN = Resolv::DNS::Resource::IN
  11.  
  12. # Use upstream DNS for name resolution.
  13. UPSTREAM = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])
  14.  
  15. def self.run
  16.     # Start the RubyDNS server
  17.     RubyDNS::run_server(:listen => INTERFACES) do
  18.         $adservers_array.each do |adserver|
  19.           match(/#{adserver}/, IN::A) do |transaction|
  20.             transaction.respond!("0.0.0.0")
  21.           end
  22.         end
  23.  
  24.         # Default DNS handler
  25.         otherwise do |transaction|
  26.             transaction.passthrough!(UPSTREAM)
  27.         end
  28.     end
  29. end
  30. run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement