From 02be31108ee82a48258a6d449ffb9c44014b633d Mon Sep 17 00:00:00 2001 From: Henri Shustak Date: Thu, 10 Jun 2021 10:38:38 +1200 Subject: [PATCH 1/2] google-safe-search-example --- .../google-safe-search-domain-generator.rb | 18 ++++++++++ .../google-safe-search.rb | 35 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100755 examples/google-force-safe-search/google-safe-search-domain-generator.rb create mode 100755 examples/google-force-safe-search/google-safe-search.rb diff --git a/examples/google-force-safe-search/google-safe-search-domain-generator.rb b/examples/google-force-safe-search/google-safe-search-domain-generator.rb new file mode 100755 index 0000000..5932cbd --- /dev/null +++ b/examples/google-force-safe-search/google-safe-search-domain-generator.rb @@ -0,0 +1,18 @@ +#!/usr/bin/env ruby + +# build google force safe search ruls for rubyDNS + +google_domains = `curl https://www.google.com/supported_domains 2>> /dev/null | sed "s/^.//g"`.split("\n") + +google_domains.each do | dom | + + puts "" + puts "#match #{dom}" + puts "match(/^#{dom}$/, IN::A) do |transaction|" + puts " transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME)" + puts "end" + puts "match(/^www.#{dom}$/, IN::A) do |transaction|" + puts " transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME)" + puts "end" + +end diff --git a/examples/google-force-safe-search/google-safe-search.rb b/examples/google-force-safe-search/google-safe-search.rb new file mode 100755 index 0000000..049e39b --- /dev/null +++ b/examples/google-force-safe-search/google-safe-search.rb @@ -0,0 +1,35 @@ +#!/usr/bin/env ruby +require 'rubydns' + +INTERFACES = [ + [:udp, "0.0.0.0", 5300], + [:tcp, "0.0.0.0", 5300], +] + +# Use upstream DNS for name resolution. +UPSTREAM = RubyDNS::Resolver.new([ + [:udp, "8.8.8.8", 53], + [:tcp, "8.8.8.8", 53] +]) + +$R = Resolv::DNS.new +Name = Resolv::DNS::Name +IN = Resolv::DNS::Resource::IN + +# Start the RubyDNS server +RubyDNS::run_server(INTERFACES) do + @logger.debug! + + #match google.com + match(/^google.com$/, IN::A) do |transaction| + transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME) + end + match(/^www.google.com$/, IN::A) do |transaction| + transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME) + end + + otherwise do |transaction| + transaction.passthrough!(UPSTREAM) + end +end + From 061ba212ac91f257a6bc3cea9a80ab4559671960 Mon Sep 17 00:00:00 2001 From: henri Date: Thu, 10 Jun 2021 13:58:24 +1200 Subject: [PATCH 2/2] Fixed the soft-tabs --- .../google-force-safe-search/google-safe-search.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/google-force-safe-search/google-safe-search.rb b/examples/google-force-safe-search/google-safe-search.rb index 049e39b..3511207 100755 --- a/examples/google-force-safe-search/google-safe-search.rb +++ b/examples/google-force-safe-search/google-safe-search.rb @@ -20,13 +20,13 @@ RubyDNS::run_server(INTERFACES) do @logger.debug! - #match google.com - match(/^google.com$/, IN::A) do |transaction| - transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME) - end - match(/^www.google.com$/, IN::A) do |transaction| - transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME) - end + #match google.com + match(/^google.com$/, IN::A) do |transaction| + transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME) + end + match(/^www.google.com$/, IN::A) do |transaction| + transaction.respond!(Name.create('forcesafesearch.google.com'), resource_class: IN::CNAME) + end otherwise do |transaction| transaction.passthrough!(UPSTREAM)