File Coverage

blib/lib/Net/IP/Identifier/Plugin/Yahoo.pm
Criterion Covered Total %
statement 18 18 100.0
branch n/a
condition 1 3 33.3
subroutine 6 6 100.0
pod 1 2 50.0
total 26 29 89.6


line stmt bran cond sub pod time code
1             #===============================================================================
2             # PODNAME: Net::IP::Identifier::Plugin::Yahoo
3             # ABSTRACT: identify Yahoo owned IP addresses
4             #
5             # AUTHOR: Reid Augustin (REID)
6             # EMAIL: reid@hellosix.com
7             # CREATED: Sun Oct 12 19:32:46 PDT 2014
8             #===============================================================================
9              
10 1     1   17 use 5.008;
  1         4  
  1         48  
11 1     1   6 use strict;
  1         2  
  1         46  
12 1     1   5 use warnings;
  1         1  
  1         41  
13              
14             package Net::IP::Identifier::Plugin::Yahoo;
15              
16 1     1   5 use Role::Tiny::With;
  1         2  
  1         260  
17             with qw( Net::IP::Identifier_Role );
18              
19             our $VERSION = '0.111'; # VERSION
20              
21             sub new {
22 1     1 1 2 my ($class, %opts) = @_;
23              
24 1         2 my $self = {};
25 1   33     9 bless $self, (ref $class || $class);
26              
27             # List of known Yahoo IP blocks as of May 2015
28 1         6 $self->ips(
29             # 88 Network Blocks
30             '8.3.34.0/23',
31             '8.8.178.0/24',
32             '27.123.32.0/19',
33             # extending 27.123.196.0/23 to include 27.123.198.0/23
34             # extending 27.123.196.0/22 to include 27.123.200.0/21
35             '27.123.196.0-27.123.207.255',
36             '46.228.32.0/20',
37             '63.250.192.0/19',
38             '64.56.160.0/19',
39             '64.157.4.0/24',
40             '66.94.224.0/19',
41             '66.163.160.0/19',
42             '66.218.64.0/19',
43             '67.28.112.0/22',
44             '67.72.118.0/23',
45             '67.195.0.0/16',
46             '68.180.128.0/17',
47             '69.147.64.0/18',
48             '76.13.0.0/16',
49             '77.238.160.0/19',
50             '87.248.96.0/19',
51             '98.136.0.0/14',
52             '103.2.12.0/22',
53             # extending 106.10.128.0/18 to include 106.10.192.0/19
54             '106.10.128.0-106.10.223.255',
55             # extending 115.178.0.0/23 to include 115.178.2.0/23
56             # extending 115.178.0.0/22 to include 115.178.4.0/23
57             # extending 115.178.0.0-115.178.5.255 to include 115.178.6.0/23
58             # extending 115.178.0.0/21 to include 115.178.8.0/23
59             '115.178.0.0-115.178.9.255',
60             '116.214.0.0/20',
61             # extending 117.104.190.0/24 to include 117.104.191.0/24
62             '117.104.190.0/23',
63             '118.151.224.0/19',
64             '119.160.240.0/20',
65             '121.101.144.0/20',
66             '124.108.64.0/21',
67             '124.108.80.0/22',
68             '124.108.86.0/23',
69             # extending 124.108.90.0/23 to include 124.108.92.0/22
70             # extending 124.108.90.0-124.108.95.255 to include 124.108.96.0/22
71             '124.108.90.0-124.108.99.255',
72             '180.222.96.0/20',
73             # extending 180.233.112.0/22 to include 180.233.116.0/24
74             # extending 180.233.112.0-180.233.116.255 to include 180.233.117.0/24
75             # extending 180.233.112.0-180.233.117.255 to include 180.233.118.0/24
76             # extending 180.233.112.0-180.233.118.255 to include 180.233.119.0/24
77             '180.233.112.0/21',
78             '182.22.0.0/17',
79             '183.79.0.0/16',
80             # extending 183.177.64.0/22 to include 183.177.68.0/22
81             '183.177.64.0/21',
82             '183.177.80.0/23',
83             # extending 183.177.84.0/22 to include 183.177.88.0/23
84             '183.177.84.0-183.177.89.255',
85             '183.177.94.0/23',
86             '184.165.0.0/16',
87             '188.125.64.0/19',
88             # absorbs:
89             # 188.125.64.0/21
90             # 188.125.72.0/21
91             # 188.125.80.0/21
92             '189.125.135.0/24',
93             '193.93.196.0/22',
94             '194.88.69.0/24',
95             '202.4.164.0/24',
96             '202.43.192.0/21',
97             '202.46.19.0/24',
98             '202.86.4.0/22',
99             '202.160.176.0/20',
100             '202.171.234.0/24',
101             '202.174.4.0/24',
102             '203.14.212.0/24',
103             '203.83.216.0/23',
104             '203.95.16.0/21',
105             '203.99.254.0/24',
106             '203.110.236.0/22',
107             '203.141.32.0/20',
108             '203.145.224.0/19',
109             '203.188.192.0/20',
110             '203.216.128.0/19',
111             '206.3.0.0/19',
112             '206.190.32.0/19',
113             '207.126.224.0/20',
114             '208.67.64.0/21',
115             '208.71.40.0/21',
116             '209.131.32.0/19',
117             '209.191.64.0/18',
118             '211.14.12.0/22',
119             '211.14.20.0/22',
120             '212.82.96.0/19',
121             # absorbs:
122             # 212.82.96.0/22
123             # 212.82.100.0/22
124             # 212.82.104.0/21
125             '216.115.96.0/20',
126             '216.145.48.0/20',
127             '216.155.192.0/20',
128             '216.252.96.0/19',
129             '216.255.224.0/20',
130             '217.12.0.0/20',
131             '217.146.176.0/20',
132             '217.163.20.0/23',
133             '2001:df0:ed::/48',
134             '2001:4998::/32',
135             '2001:49a0::/32',
136             '2400:7e00::/32',
137             '2406:2000::/32',
138             '2406:6e00::/32',
139             '2406:8600::/32',
140             '2804:1bc::/32',
141             '2a00:1288::/32',
142             );
143 1         8 return $self;
144             }
145              
146             sub name {
147 3     3 0 16 return 'Yahoo';
148             }
149              
150             1;
151              
152             __END__