oui-offline 1.2.5-java
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
- checksums.yaml.gz.sig +0 -0
- data/Gemfile +8 -0
- data/README.md +113 -0
- data/bin/oui +61 -0
- data/data/oui-manual.json +7 -0
- data/data/oui.txt +128306 -0
- data/db/oui.sqlite3 +0 -0
- data/lib/oui.rb +380 -0
- data/oui-offline.gemspec +40 -0
- data.tar.gz.sig +5 -0
- metadata +141 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 286617edad02d732f5d3934f3b6f293fda5e421d
|
4
|
+
data.tar.gz: af07a576875323684c9025177179204327572565
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 655a7b5b61d3eb2c16c4cf7b23d812c94a2464f3f936925a94e9e5843a6cb4aee69fb83dbca156e4771ab4840b179ec147ae2dc8c335943a6b7d9862c1cbc329
|
7
|
+
data.tar.gz: 3d0dd3c43705d172ebfc19376910d3f187bd01645a63d0d9e4e033d35057f858f388d808f9d5944b06035f15723bd9dc92785362740dfa268554de1258932240
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
[](https://travis-ci.org/steakknife/oui)
|
2
|
+
# OUI (Organizationally Unique Identifiers)
|
3
|
+
|
4
|
+
The 24-bit prefix of MAC / EUI-\* addresses.
|
5
|
+
|
6
|
+
This is a Ruby library and CLI tool `oui`
|
7
|
+
|
8
|
+
## Usage
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
> OUI.find 'AA-BB-CC'
|
12
|
+
=> nil
|
13
|
+
> OUI.find '00:0c:85'
|
14
|
+
=> {
|
15
|
+
:id => 3205,
|
16
|
+
:organization => "CISCO SYSTEMS, INC.",
|
17
|
+
:address1 => "170 W. TASMAN DRIVE",
|
18
|
+
:address2 => "M/S SJA-2",
|
19
|
+
:address3 => "SAN JOSE CA 95134-1706",
|
20
|
+
:country => "UNITED STATES"
|
21
|
+
}
|
22
|
+
```
|
23
|
+
|
24
|
+
## CLI usage
|
25
|
+
|
26
|
+
```text
|
27
|
+
Usage: oui lookup [options...] oui+ # get corp name, oui in 24-bit oui in hex format
|
28
|
+
|
29
|
+
-j JSON verbose output
|
30
|
+
-r Ruby verbose output
|
31
|
+
-y YAML verbose output
|
32
|
+
|
33
|
+
oui update # update oui internal db from ieee.org
|
34
|
+
```
|
35
|
+
|
36
|
+
## Installation
|
37
|
+
### Gem (insecure installation)
|
38
|
+
|
39
|
+
```shell
|
40
|
+
[sudo] gem install oui-offline
|
41
|
+
```
|
42
|
+
### Gem (secure installation)
|
43
|
+
|
44
|
+
```shell
|
45
|
+
[sudo] gem cert --add <(curl -L https://gist.github.com/steakknife/5333881/raw/gem-public_cert.pem) # add my cert (do once)
|
46
|
+
[sudo] gem install -P MediumSecurity oui-offline
|
47
|
+
```
|
48
|
+
|
49
|
+
See also: [waxseal](https://github.com/steakknife/waxseal)
|
50
|
+
|
51
|
+
### Bundler Installation
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
gem 'oui-offline'
|
55
|
+
```
|
56
|
+
|
57
|
+
### Manual Installation
|
58
|
+
|
59
|
+
cd ${TMP_DIR-/tmp}
|
60
|
+
git clone https://github.com/steakknife/oui
|
61
|
+
cd oui
|
62
|
+
gem build *.gemspec
|
63
|
+
gem install *.gem
|
64
|
+
|
65
|
+
|
66
|
+
## Lookup an OUI from CLI
|
67
|
+
|
68
|
+
`oui lookup ABCDEF`
|
69
|
+
|
70
|
+
## Data source
|
71
|
+
|
72
|
+
Database sourced from the public IEEE list, but it can be rebuilt anytime by running `oui update` or `OUI.update_db`
|
73
|
+
The few duplicates that are of multiple entities per OUI instead choose the first registration.
|
74
|
+
|
75
|
+
## Unregistered OUIs
|
76
|
+
|
77
|
+
Place custom/unregistered OUIs in `data/oui-manual.json` and re-run `oui update` or `OUI.update_db`. Feel free to submit a PR to update these permanently.
|
78
|
+
|
79
|
+
## Return format
|
80
|
+
|
81
|
+
`OUI.find('00-00-00')` returns a hash like this:
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
{:id => 0,
|
85
|
+
:organization => "XEROX CORPORATION",
|
86
|
+
:address1 => "M/S 105-50C",
|
87
|
+
:address2 => "800 PHILLIPS ROAD",
|
88
|
+
:address3 => "WEBSTER NY 14580",
|
89
|
+
:country => "UNITED STATES"}
|
90
|
+
|
91
|
+
|
92
|
+
The `id` column is a stable, reversible conversion of the OUI as follows: the hexadecimal value of the OUI) to unsigned integer in network order (id).
|
93
|
+
|
94
|
+
- Use `OUI.oui_to_i('aa-bb-cc')` to obtain an `id` from an OUI
|
95
|
+
- Use `OUI.to_s(12345)` to do the inverse, obtain an OUI from an `id`
|
96
|
+
|
97
|
+
## Supported Ruby Engines
|
98
|
+
|
99
|
+
- JRuby
|
100
|
+
- Ruby 1.9.3+ (until February 2015), 2.*
|
101
|
+
|
102
|
+
## Tested Ruby Engines
|
103
|
+
|
104
|
+
- JRuby 1.7.*
|
105
|
+
- Ruby (MRI) 2.2.*
|
106
|
+
|
107
|
+
## Thanks
|
108
|
+
|
109
|
+
[Your name here]
|
110
|
+
|
111
|
+
## License
|
112
|
+
|
113
|
+
MIT
|
data/bin/oui
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
root = File.dirname(File.expand_path('..', __FILE__))
|
3
|
+
lib_dir = File.join(root, 'lib')
|
4
|
+
$:.unshift lib_dir unless $:.include? lib_dir
|
5
|
+
require 'oui'
|
6
|
+
autoload :JSON, 'json'
|
7
|
+
autoload :YAML, 'yaml'
|
8
|
+
|
9
|
+
|
10
|
+
case ARGV.shift
|
11
|
+
when 'lookup'
|
12
|
+
def output(r)
|
13
|
+
if @yaml_output
|
14
|
+
YAML.dump r
|
15
|
+
elsif @json_output
|
16
|
+
JSON.dump r
|
17
|
+
elsif @ruby_output
|
18
|
+
r
|
19
|
+
else
|
20
|
+
r[:organization]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
success = nil
|
25
|
+
# TODO: OptParse || thor
|
26
|
+
@json_output = ARGV.delete '-j'
|
27
|
+
@ruby_output = ARGV.delete '-r'
|
28
|
+
@yaml_output = ARGV.delete '-y'
|
29
|
+
formats = [@ruby_output, @json_output, @yaml_output].count { |x| x };
|
30
|
+
fail 'Only one format flag is allowed' if formats > 1
|
31
|
+
ARGV.map do |mac|
|
32
|
+
r = OUI.find(mac)
|
33
|
+
success &= !!r
|
34
|
+
r ||= {}
|
35
|
+
puts(output(r))
|
36
|
+
end
|
37
|
+
exit 1 unless success
|
38
|
+
|
39
|
+
when 'update'
|
40
|
+
if ARGV.delete '-l'
|
41
|
+
OUI.update_db(local = true)
|
42
|
+
else
|
43
|
+
OUI.update_db
|
44
|
+
end
|
45
|
+
|
46
|
+
else
|
47
|
+
$stderr.puts <<-EOS
|
48
|
+
Usage: oui lookup [options...] oui+ # get corp name, oui in 24-bit oui in hex format
|
49
|
+
|
50
|
+
-j JSON verbose output
|
51
|
+
-r Ruby verbose output
|
52
|
+
-y YAML verbose output
|
53
|
+
|
54
|
+
oui update [options...] # update oui internal db from ieee.org
|
55
|
+
|
56
|
+
-l dont connect to network, instead use data/oui.txt
|
57
|
+
|
58
|
+
EOS
|
59
|
+
exit 1
|
60
|
+
end
|
61
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
[
|
2
|
+
{"id": "00:D3:10", "organization": "Dell, Inc., for Dell Compellent Storage products"},
|
3
|
+
{"id": "0A:BB:CF", "organization": "Apple, Inc., Bluetooth PAN"},
|
4
|
+
{"id": "6A:5B:35", "organization": "Apple, Inc., Bridge and bond devices (virtual)"},
|
5
|
+
{"id": "CA:6F:1D", "organization": "Apple, Inc., iPhone USB"},
|
6
|
+
{"id": "D2:00:1A", "organization": "Apple, Inc., Thunderbolt"}
|
7
|
+
]
|