File Coverage

blib/lib/WWW/IP.pm
Criterion Covered Total %
statement 30 35 85.7
branch 1 4 25.0
condition n/a
subroutine 10 10 100.0
pod 1 1 100.0
total 42 50 84.0


line stmt bran cond sub pod time code
1 1     1   28442 use 5.008;
  1         2  
2 1     1   6 use strict;
  1         2  
  1         26  
3 1     1   3 use warnings;
  1         4  
  1         56  
4             package WWW::IP;
5             $WWW::IP::VERSION = '0.04';
6 1     1   623 use HTTP::Tiny;
  1         41646  
  1         28  
7 1     1   394 use WWW::hmaip ();
  1         310  
  1         15  
8 1     1   436 use WWW::ipinfo ();
  1         10791  
  1         15  
9 1     1   386 use WWW::canihazip ();
  1         228  
  1         22  
10              
11             # ABSTRACT: Returns your ip address with failsafe mechanism
12              
13              
14             BEGIN {
15 1     1   4 require Exporter;
16 1     1   4 use base 'Exporter';
  1         1  
  1         57  
17 1         1 our @EXPORT = 'get_ip';
18 1         63 our @EXPORT_OK = ();
19             }
20              
21              
22             sub get_ip {
23 1     1 1 4 my $ip = eval { WWW::canihazip::get_ip() };
  1         3  
24 1 50       48718 if ($@)
25             {
26 0         0 $ip = eval { WWW::hmaip::get_ip() };
  0         0  
27 0 0       0 if ($@)
28             {
29 0         0 $ip = eval { WWW::ipinfo::get_ipinfo->{ip} };
  0         0  
30             }
31             }
32 1         5 $ip;
33             }
34              
35              
36             1;
37              
38             __END__