View difference between Paste ID: PEcPu7Fv and n0GdeJxU
SHOW: | | - or go back to the newest paste.
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|
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