Class: SPF::Mech::IP4
Constant Summary collapse
- NAME =
'ip4'
Constants inherited from SPF::Mech
DEFAULT_QUALIFIER, EXPLANATION_TEMPLATES_BY_RESULT_CODE, NAME_PATTERN, QUALIFIER_PATTERN
Constants inherited from Term
Term::DOMAIN_END_PATTERN, Term::DOMAIN_SPEC_PATTERN, Term::HEXWORD_PATTERN, Term::IPV4_ADDRESS_PATTERN, Term::IPV6_ADDRESS_PATTERN, Term::MACRO_DELIMITER, Term::MACRO_EXPAND_PATTERN, Term::MACRO_LITERAL_PATTERN, Term::MACRO_STRING_PATTERN, Term::MACRO_TRANSFORMERS_PATTERN, Term::NAME_PATTERN, Term::QNUM_PATTERN, Term::TOPLABEL_PATTERN, Term::TWO_HEXWORDS_OR_IPV4_ADDRESS_PATTERN
Instance Attribute Summary
Attributes inherited from Term
#domain_spec, #errors, #ip_address, #ip_netblocks, #ip_network, #ipv4_prefix_length, #ipv6_prefix_length, #raw_params
Instance Method Summary collapse
- #match(server, request, want_result = true) ⇒ Object
- #params ⇒ Object
- #parse_params(required = true) ⇒ Object
Methods inherited from SPF::Mech
#default_ipv4_prefix_length, #default_ipv6_prefix_length, #explain, #explanation_template, #initialize, #match_in_domain, #parse, #parse_end, #parse_name, #parse_qualifier, #qualifier, #to_s
Methods inherited from Term
#domain, #error, #initialize, new_from_string, #parse_domain_spec, #parse_ipv4_address, #parse_ipv4_ipv6_prefix_lengths, #parse_ipv4_network, #parse_ipv4_prefix_length, #parse_ipv6_address, #parse_ipv6_network, #parse_ipv6_prefix_length, #text
Constructor Details
This class inherits a constructor from SPF::Mech
Instance Method Details
#match(server, request, want_result = true) ⇒ Object
484 485 486 487 488 489 490 |
# File 'lib/spf/model.rb', line 484 def match(server, request, want_result = true) return false unless @ip_network ip_network_v6 = IP::V4 === @ip_network ? SPF::Util.ipv4_address_to_ipv6(@ip_network) : @ip_network return ip_network_v6.contains?(request.ip_address_v6) end |
#params ⇒ Object
474 475 476 477 478 479 480 481 482 |
# File 'lib/spf/model.rb', line 474 def params return nil unless @ip_network return @ip_network if String === @ip_network result = @ip_network.to_addr if @ip_network.pfxlen != @default_ipv4_prefix_length result += "/#{@ip_network.pfxlen}" end return result end |
#parse_params(required = true) ⇒ Object
464 465 466 467 468 469 470 471 472 |
# File 'lib/spf/model.rb', line 464 def parse_params(required = true) self.parse_ipv4_network(required) if IP === @ip_network @ip_netblocks << @ip_network @errors << SPF::InvalidMechCIDRError.new( "Invalid CIDR netblock - bits in host portion of address of #{@ip_network}" ) if @ip_network.offset != 0 end end |