rirfinder 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 +7 -0
- data/lib/rirfinder.rb +4 -0
- data/lib/rirfinder/rir.rb +54 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 07cc7c6e263e3caba594f9816ce1c963900cd6ad
|
4
|
+
data.tar.gz: b7076b7af178bbbe411c68d4fadbb705ae5416c9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6b8a32938272a4df5ba85b9d8a86e6fbcb00471d707b1d940fb5c470e7784eaedc68e24fd547c0c0688afff07c1c93eeabbd0f7310de8c5e6e5685125a1859e0
|
7
|
+
data.tar.gz: 81ec563d479d6e1690d8a0c99ef089cb41e90f5c905c67357de17076277d8436310b7ae4ec94de0504e2f412482b8f241a9ae4d73e2c284f06ad47aab4bc43c5
|
data/lib/rirfinder.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'httparty'
|
4
|
+
|
5
|
+
class RIRFinder::RIR
|
6
|
+
def initialize db, rir, tmp = '/tmp/rir'
|
7
|
+
@rir_index = [:afrinic, :apnic, :arin, :lacnic, :ripe]
|
8
|
+
@db = db
|
9
|
+
@rir = if rir == :all
|
10
|
+
@rir_index
|
11
|
+
else
|
12
|
+
rir.class == Array ? rir : Array.new.push(rir)
|
13
|
+
end
|
14
|
+
@tmp = tmp and Dir.mkdir tmp rescue nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def build_db
|
18
|
+
_fetch @rir
|
19
|
+
_parse
|
20
|
+
# TODO
|
21
|
+
end
|
22
|
+
|
23
|
+
def _fetch rir_list
|
24
|
+
rir_list.each do |rir|
|
25
|
+
fp = open @tmp + "/#{rir}", 'w'
|
26
|
+
fp.write HTTParty.get("http://ftp.#{rir}.net/pub/stats/#{rir}/delegated-#{rir}-extended-latest")
|
27
|
+
fp.close
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def _parse
|
32
|
+
reports = Hash.new
|
33
|
+
ignore_initial_lines = 4
|
34
|
+
Dir.chdir @tmp
|
35
|
+
(Dir.entries(@tmp) - ['.', '..']).each do |report|
|
36
|
+
fp = open report
|
37
|
+
reports[report] = fp.read.lines.select{|line| line[0] != '#'}[ignore_initial_lines..-1]
|
38
|
+
.map{|line| line.split '|'}
|
39
|
+
fp.close
|
40
|
+
end
|
41
|
+
reports
|
42
|
+
end
|
43
|
+
|
44
|
+
class << self
|
45
|
+
def generate args = {db: 'rir.db', rir: :all, fetch: false}
|
46
|
+
if args[:fetch]
|
47
|
+
self.new(args[:db], args[:rir]).build_db
|
48
|
+
else
|
49
|
+
self.new(args[:db], args[:rir])._parse
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rirfinder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tahmid Shakil
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-07-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: RIRFinder is a Regional Internet Registry (RIR) traversal module. It
|
14
|
+
is aimed to provide country based fast network search feature.
|
15
|
+
email: at.shakil.92@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/rirfinder.rb
|
21
|
+
- lib/rirfinder/rir.rb
|
22
|
+
homepage: https://github.com/atshakil/rirfinder
|
23
|
+
licenses:
|
24
|
+
- CC-BY-SA-4.0
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.5.1
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: A RIR traversal module
|
46
|
+
test_files: []
|