Module: SPF::Query
- Defined in:
- lib/spf/query/ip.rb,
lib/spf/query/macro.rb,
lib/spf/query/query.rb,
lib/spf/query/parser.rb,
lib/spf/query/record.rb,
lib/spf/query/version.rb,
lib/spf/query/modifier.rb,
lib/spf/query/mechanism.rb,
lib/spf/query/exceptions.rb,
lib/spf/query/macro_string.rb
Defined Under Namespace
Classes: IP, InvalidRecord, Macro, MacroString, Mechanism, Modifier, Parser, Record, SenderIDFound, UnknownModifier
Constant Summary collapse
- VERSION =
spf-query version
'0.1.5'
Class Method Summary collapse
-
.query(domain, resolver = Resolv::DNS.new) ⇒ String?
Queries the domain for it's SPF record.
Class Method Details
.query(domain, resolver = Resolv::DNS.new) ⇒ String?
Queries the domain for it's SPF record.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/spf/query/query.rb', line 20 def self.query(domain,resolver=Resolv::DNS.new) # check for SPF in the TXT records ["_spf.#{domain}", domain].each do |host| begin records = resolver.getresources(host, Resolv::DNS::Resource::IN::TXT) records.each do |record| txt = record.strings.join if txt.include?('v=spf1') return txt end end rescue Resolv::ResolvError end end # check for an SPF record on the domain begin record = resolver.getresource(domain, Resolv::DNS::Resource::IN::SPF) return record.strings.join(' ') rescue Resolv::ResolvError end return nil end |