class SearchMacAddress::AddrMac
Public Class Methods
by_popen()
click to toggle source
# File lib/search_mac_address/addr_mac.rb, line 30 def by_popen regex = %r<(?:hwaddr|:)\s+((?:[0-9a-f]{1,2}[-:]){5}[0-9a-f]{1,2})\s*$>i res = begin IO.popen('ifconfig'){|fd| fd.readlines} rescue IO.popen('ipconfig /all'){|fd| fd.readlines} end addresses = res.map{|row| regex.match( row )[1] rescue nil }.compact return addresses end
by_socket()
click to toggle source
# File lib/search_mac_address/addr_mac.rb, line 20 def by_socket addresses = [] Socket.getifaddrs.each do |get_addr| next unless get_addr.addr.pfamily == Socket::PF_PACKET if Socket.const_defined?(:PF_PACKET) addr = get_addr.addr.inspect_sockaddr[/hwaddr=([\h:]+)/,1] addresses << addr if addr != "00:00:00:00:00:00" end return addresses end
get_physical_address()
click to toggle source
# File lib/search_mac_address/addr_mac.rb, line 6 def get_physical_address res = by_socket if res.any? return res end rec = by_popen if rec.any? return rec end p "Rec not found" end