sns_utils 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sns_utils/ip_extractor.rb +11 -6
- data/lib/sns_utils/version.rb +1 -1
- data/spec/fixtures/edge_cases.log +7 -1
- data/spec/sns_utils/ip_extractor_spec.rb +15 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 620632d0cf549c2f51495c8d91a64c89d6dfeb0f
|
4
|
+
data.tar.gz: 674efcd5281dc6202312988c95c74142978a00c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b5f6de14432d3ec5e97f753eee6cdf4f27e7b29fc89ac5fca1bef70018a76f875da696542bc263a5f2fb77f06a2e1c675c533e62ba8541fb68afcebbdaba366
|
7
|
+
data.tar.gz: bb79f4bc4ede80e832832acdf40447fdbc7c9fb28b8625cf268ce0b347dd87719fd70b5fa14a771cfb8f337cebc8e8420cf4ee8059b05f314fe67eb45c0c93ab
|
@@ -3,10 +3,11 @@ module SnsUtils
|
|
3
3
|
attr_accessor :file, :options
|
4
4
|
attr_accessor :ip_addrs, :ip_addrs_log, :mac_addrs, :mac_addrs_log
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
IP_REGEX = /
|
7
|
+
#{::SnsUtils::IPv4::REGEX} |
|
8
|
+
#{::SnsUtils::IPv6::REGEX} |
|
9
|
+
#{::SnsUtils::MAC::REGEX}
|
10
|
+
/xi
|
10
11
|
|
11
12
|
def initialize(argv)
|
12
13
|
@file, @options = parse_options(argv)
|
@@ -25,12 +26,14 @@ module SnsUtils
|
|
25
26
|
|
26
27
|
def extract_addresses
|
27
28
|
File.open(file, 'r').each do |line|
|
28
|
-
line.scan(IP_REGEX).each
|
29
|
+
line.scan(IP_REGEX).each do |ip|
|
30
|
+
log_addr(ip)
|
31
|
+
end
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
32
35
|
def log_ip_addrs
|
33
|
-
self.ip_addrs_log
|
36
|
+
self.ip_addrs_log = ip_addrs.select { |_, count| count >= options.ip_threshold }.keys
|
34
37
|
write_file(::SnsUtils.ip_out_file, ip_addrs_log)
|
35
38
|
end
|
36
39
|
|
@@ -57,6 +60,8 @@ module SnsUtils
|
|
57
60
|
rescue IPAddr::InvalidAddressError => e
|
58
61
|
mac_addrs[ip] ||= 0
|
59
62
|
mac_addrs[ip] += 1
|
63
|
+
rescue IPAddr::AddressFamilyError => e
|
64
|
+
$stderr.puts(e.message)
|
60
65
|
end
|
61
66
|
|
62
67
|
def parse_options(argv)
|
data/lib/sns_utils/version.rb
CHANGED
@@ -1,2 +1,8 @@
|
|
1
|
-
# should match
|
1
|
+
# should match one ip 123.12.12.126-16-2013
|
2
|
+
# should match one ip 6-7-201123.12.12.127
|
3
|
+
# should match one ip 6-7-201123.12.12.128-16-2013
|
2
4
|
# invalid but should match by truncating last '0' 192.168.1.500
|
5
|
+
# invalid but should match by truncating last '5' 192.168.1.555:80
|
6
|
+
# ipv4 with port number 192.168.1.51:8080
|
7
|
+
# ipv8 with port number # valid 2001:0000:1234:0000:0000:C1C0:ABCD:0876:8080
|
8
|
+
# multi-line xyz:1 ip 123.12.12.129-16-2013 2013-1xxxy&& 2001:0000:1234:0000:0000:C1C0:ABCD:0877:8080 9%%%#+ 192.168.1.565:80
|
@@ -15,7 +15,7 @@ describe SnsUtils::IpExtractor do
|
|
15
15
|
|
16
16
|
it "finds valid entries" do
|
17
17
|
ipex = SnsUtils::IpExtractor.new([file]).run
|
18
|
-
ipex.ip_addrs.should have(
|
18
|
+
ipex.ip_addrs.should have(96).entries
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -102,3 +102,17 @@ describe SnsUtils::IpExtractor do
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
105
|
+
|
106
|
+
|
107
|
+
describe "SnsUtils::IpExtractor" do
|
108
|
+
context "extracting edge cases" do
|
109
|
+
let(:file) { fixture_path("edge_cases.log") }
|
110
|
+
|
111
|
+
it "finds valid entries" do
|
112
|
+
ipex = SnsUtils::IpExtractor.new([file]).run
|
113
|
+
|
114
|
+
pp ipex.ip_addrs
|
115
|
+
ipex.ip_addrs.should have(10).entries
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sns_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sahglie
|
@@ -131,3 +131,4 @@ test_files:
|
|
131
131
|
- spec/fixtures/thresholds.log
|
132
132
|
- spec/sns_utils/ip_extractor_spec.rb
|
133
133
|
- spec/spec_helper.rb
|
134
|
+
has_rdoc:
|