Module: Mac
Overview
Constant Summary collapse
- EMPTY_MAC =
/00(?:[^\h]?00){5}(?:[^\h]?00){2}?/.freeze
- HWADDR_REGEX =
/hwaddr=([\h:]+)/.freeze
- WINDOWS_REGEX =
/win(32|dows|ce)|(ms|cyg|bcc)win|mingw32|djgpp/i.freeze
- LOOSE_MAC_REGEX =
EUI48 and EUI64
/\h\h(?:[^\h]\h\h){5}(?:[^\h]\h\h){2}?/.freeze
- EXACT_MAC_REGEX =
/\A#{LOOSE_MAC_REGEX}\z/.freeze
Instance Method Summary collapse
-
#address ⇒ String
(also: #mac_address, #addr)
First hardware address, in no particular order (varies by system).
-
#addresses ⇒ Array<String>
(also: #addrs)
All hardware address, in no particular order (varies by system).
-
#iface_macs ⇒ Hash<String,[String,nil]>
All interfaces as keys, values are MAC addresses ((if present).
-
#ifaddrs ⇒ Array<Ifaddr>
Return all interface Ifaddrs.
Instance Method Details
#address ⇒ String Also known as: mac_address, addr
Returns First hardware address, in no particular order (varies by system).
20 21 22 |
# File 'lib/macaddr.rb', line 20 def address addresses.first end |
#addresses ⇒ Array<String> Also known as: addrs
Returns All hardware address, in no particular order (varies by system).
26 27 28 |
# File 'lib/macaddr.rb', line 26 def addresses iface_macs.values.compact || [] end |
#iface_macs ⇒ Hash<String,[String,nil]>
Returns all interfaces as keys, values are MAC addresses ((if present).
45 46 47 48 49 50 51 |
# File 'lib/macaddr.rb', line 45 def iface_macs h = iface_macs_raw.map do |k, v| v = nil unless valid_mac? v [k, v] end Hash[h] end |
#ifaddrs ⇒ Array<Ifaddr>
Return all interface Ifaddrs
35 36 37 38 39 40 41 |
# File 'lib/macaddr.rb', line 35 def ifaddrs return [] if !Socket.respond_to?(:getifaddrs) || iface_packet_family.nil? Socket.getifaddrs.select do |iface| next unless iface.addr && iface.addr.respond_to?(:pfamily) iface.addr.pfamily == iface_packet_family end end |