File Coverage

blib/lib/Net/IP/Checker.pm
Criterion Covered Total %
statement 19 20 95.0
branch 7 8 87.5
condition 2 3 66.6
subroutine 7 7 100.0
pod 3 3 100.0
total 38 41 92.6


line stmt bran cond sub pod time code
1             #ABSTRACT: IPv4/IPv6 addresses validator
2              
3              
4             package Net::IP::Checker;
5             $Net::IP::Checker::VERSION = '0.02';
6 1     1   55984 use strict;
  1         2  
  1         24  
7 1     1   5 use warnings;
  1         1  
  1         22  
8 1     1   399 use Regexp::IPv6 qw($IPv6_re);
  1         765  
  1         108  
9 1     1   358 use Regexp::IPv4 qw($IPv4_re);
  1         177  
  1         292  
10              
11             require Exporter;
12              
13             our @ISA = qw(Exporter);
14             our @EXPORT_OK = qw(ip_get_version ip_is_ipv4 ip_is_ipv6);
15             our %EXPORT_TAGS = ( 'ALL' => [@EXPORT_OK] );
16              
17              
18             sub ip_get_version {
19 2     2 1 4 my $ip = shift;
20 2 100 66     12 $ip !~ /:/ and ip_is_ipv4($ip) and return '4';
21 1 50       3 ip_is_ipv6($ip) and return '6';
22 0         0 return;
23             }
24              
25              
26             sub ip_is_ipv4 {
27 16     16 1 2980 my $ip = shift;
28 16 100       194 return $ip =~ /^$IPv4_re$/ ? 1 : 0;
29             }
30              
31              
32             sub ip_is_ipv6 {
33 24     24 1 4443 my $ip = shift;
34 24 100       739 return $ip =~ /^$IPv6_re$/ ? 1 : 0;
35             }
36              
37             __END__