interfacez 1.0.2 → 1.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/Gemfile.lock +1 -1
- data/README.md +5 -2
- data/lib/interfacez.rb +31 -1
- data/lib/interfacez/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8562cc86b62cb117b02a09866b3d316999d0c5102f8d02d61191d3e8fbb99e64
|
4
|
+
data.tar.gz: 5f18980f6868b5bf2207c4de7dda5603aed936944e0673e7969eaa5e54185a3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2680f9c1ba07f85d54a385fb07ed420738035a0d2b3a609de90b2b197b3acf0ea2c19aeceb62059476714c2ef4a4dd860a8b9f0dd00299e02ab5ee87fb4b952b
|
7
|
+
data.tar.gz: 857f80f3b0242eb77abeda72d56054d2155eb9422764eb765bb060ad97213ecfb94abd847f50569d51ceac8b7e63dacd272ae951b10726db07c2a7dd0871d37a
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -11,15 +11,18 @@
|
|
11
11
|
require 'interfacez'
|
12
12
|
|
13
13
|
Interfacez.default
|
14
|
-
# => en0
|
14
|
+
# => "en0"
|
15
15
|
|
16
16
|
Interfacez.loopback
|
17
|
-
# => lo0
|
17
|
+
# => "lo0"
|
18
18
|
|
19
19
|
Interfacez.all do |interface|
|
20
20
|
# do something with interface name
|
21
21
|
puts interface
|
22
22
|
end
|
23
|
+
|
24
|
+
Interfacez.ipv4_address_of("en0")
|
25
|
+
# => "192.168.1.2"
|
23
26
|
```
|
24
27
|
|
25
28
|
## License
|
data/lib/interfacez.rb
CHANGED
@@ -139,7 +139,7 @@ module Interfacez
|
|
139
139
|
|
140
140
|
# Return all available ipv6 addreses of a given interface.
|
141
141
|
def self.ipv6_addresses_of(interface)
|
142
|
-
return Interfacez.
|
142
|
+
return Interfacez.ipv6_addresses[interface] || []
|
143
143
|
end
|
144
144
|
|
145
145
|
# Return the first ipv6 address of a given interface.
|
@@ -149,6 +149,36 @@ module Interfacez
|
|
149
149
|
return addresses[0]
|
150
150
|
end
|
151
151
|
|
152
|
+
# Return first available mac addresses of a given interface.
|
153
|
+
def self.mac_address_of(interface)
|
154
|
+
list = Interfacez.mac_addresses_of(interface)
|
155
|
+
return nil if list.size.zero?
|
156
|
+
return list[0]
|
157
|
+
end
|
158
|
+
|
159
|
+
# Return all available mac addresses of a given interface.
|
160
|
+
def self.mac_addresses_of(interface)
|
161
|
+
# BSD support
|
162
|
+
if Socket.const_defined? :PF_LINK
|
163
|
+
list = raw_interface_addresses.map! do |iface|
|
164
|
+
next unless iface.name == interface
|
165
|
+
nameinfo = iface.addr.getnameinfo
|
166
|
+
if nameinfo.first != "" && nameinfo.last == ""
|
167
|
+
nameinfo[0]
|
168
|
+
end
|
169
|
+
end.compact
|
170
|
+
# Linux support
|
171
|
+
elsif Socket.const_defined? :PF_PACKET
|
172
|
+
list = raw_interface_addresses.map! do |iface|
|
173
|
+
next unless iface.name == interface
|
174
|
+
iface.addr.inspect_sockaddr[/hwaddr=([\h:]+)/, 1]
|
175
|
+
end.compact
|
176
|
+
else
|
177
|
+
warn "This platform may not be fully supported!"
|
178
|
+
return []
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
152
182
|
# Get index of network interface.
|
153
183
|
def self.index_of(interface)
|
154
184
|
raw_interface_addresses.each do |iface|
|
data/lib/interfacez/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: interfacez
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kent 'picat' Gruber
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
94
|
version: '0'
|
95
95
|
requirements: []
|
96
96
|
rubyforge_project:
|
97
|
-
rubygems_version: 2.7.
|
97
|
+
rubygems_version: 2.7.6
|
98
98
|
signing_key:
|
99
99
|
specification_version: 4
|
100
100
|
summary: Simplified network interface API
|