Server IP : 85.214.239.14 / Your IP : 18.191.84.179 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/cwd/proc/self/root/proc/self/root/usr/share/perl5/Mail/SPF/Mech/ |
Upload File : |
# # Mail::SPF::Mech::IP4 # SPF record "ip4" mechanism class. # # (C) 2005-2012 Julian Mehnle <julian@mehnle.net> # 2005 Shevek <cpan@anarres.org> # $Id: IP4.pm 57 2012-01-30 08:15:31Z julian $ # ############################################################################## package Mail::SPF::Mech::IP4; =head1 NAME Mail::SPF::Mech::IP4 - SPF record C<ip4> mechanism class =cut use warnings; use strict; use base 'Mail::SPF::SenderIPAddrMech'; use constant TRUE => (0 == 0); use constant FALSE => not TRUE; use constant name => 'ip4'; use constant name_pattern => qr/${\name}/i; =head1 DESCRIPTION An object of class B<Mail::SPF::Mech::IP4> represents an SPF record mechanism of type C<ip4>. =head2 Constructors The following constructors are provided: =over =item B<new(%options)>: returns I<Mail::SPF::Mech::IP4> Creates a new SPF record C<ip4> mechanism object. %options is a list of key/value pairs representing any of the following options: =over =item B<qualifier> =item B<ip_network> See L<Mail::SPF::Mech/new>. =back =item B<new_from_string($text, %options)>: returns I<Mail::SPF::Mech::IP4>; throws I<Mail::SPF::ENothingToParse>, I<Mail::SPF::EInvalidMech> Creates a new SPF record C<ip4> mechanism object by parsing the string and any options given. =back =head2 Class methods The following class methods are provided: =over =item B<default_qualifier> =item B<default_ipv4_prefix_length> =item B<qualifier_pattern> See L<Mail::SPF::Mech/Class methods>. =item B<name>: returns I<string> Returns B<'ip4'>. =item B<name_pattern>: returns I<Regexp> Returns a regular expression that matches a mechanism name of B<'ip4'>. =back See L<Mail::SPF::Mech> for other supported class methods. =head2 Instance methods The following instance methods are provided: =over =cut sub parse_params { my ($self) = @_; $self->parse_ipv4_network(TRUE); return; } =item B<text> =item B<qualifier> =item B<params> =cut sub params { my ($self) = @_; my $params = ':' . $self->{ip_network}->addr; $params .= '/' . $self->{ip_network}->masklen if $self->{ip_network}->masklen != $self->default_ipv4_prefix_length; return $params; } =item B<stringify> See L<Mail::SPF::Mech/Instance methods>. =item B<ip_network>: returns I<NetAddr::IP> Returns the IP address network parameter of the mechanism. =cut # Make read-only accessors: __PACKAGE__->make_accessor($_, TRUE) foreach qw(ip_network ip_address ipv4_prefix_length); =item B<match($server, $request)>: returns I<boolean> Returns B<true> if the mechanism's C<ip_network> equals or contains the given request's IP address, or B<false> otherwise. See RFC 4408, 5.6, for details. =cut sub match { my ($self, $server, $request) = @_; my $ip_network_v6 = $self->ip_network->version == 4 ? Mail::SPF::Util->ipv4_address_to_ipv6($self->ip_network) : $self->ip_network; return $ip_network_v6->contains($request->ip_address_v6); } =back =head1 SEE ALSO L<Mail::SPF>, L<Mail::SPF::Record>, L<Mail::SPF::Term>, L<Mail::SPF::Mech> L<http://tools.ietf.org/html/rfc4408> For availability, support, and license information, see the README file included with Mail::SPF. =head1 AUTHORS Julian Mehnle <julian@mehnle.net>, Shevek <cpan@anarres.org> =cut TRUE;