interfacez 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|