class Amnesie::MAC
Public Class Methods
new(card)
click to toggle source
# File lib/amnesie/mac.rb, line 5 def initialize(card) @card = card @ip = Helpers::Exec.new("ip") save_origin new_mac end
Public Instance Methods
down()
click to toggle source
# File lib/amnesie/mac.rb, line 16 def down @ip.run("link set dev #{@card} down") end
set_addr()
click to toggle source
# File lib/amnesie/mac.rb, line 12 def set_addr @ip.run("link set dev #{@card} address #{@mac}") end
to_s()
click to toggle source
# File lib/amnesie/mac.rb, line 24 def to_s @card + " " + @mac end
up()
click to toggle source
# File lib/amnesie/mac.rb, line 20 def up @ip.run("link set dev #{@card} up") end
Private Instance Methods
new_mac()
click to toggle source
# File lib/amnesie/mac.rb, line 30 def new_mac first = SecureRandom.hex(1) last = SecureRandom.hex(5) lastfive = last.split(//).each_slice(2).to_a.map(&:join).join(':') firstbyte = `printf '%02X' $(( 0x#{first} & 254 | 2))` @mac = "#{firstbyte}:#{lastfive}".downcase end
save_origin()
click to toggle source
# File lib/amnesie/mac.rb, line 42 def save_origin return if File.exist? "/tmp/mac_#{@card}" search_curr_mac filename="/tmp/mac_#{@card}" File.write(filename, @curr) puts "Origin saved" end
search_curr_mac()
click to toggle source
# File lib/amnesie/mac.rb, line 38 def search_curr_mac @curr = `ip addr show dev #{@card} | grep -i ether | awk '{print $2}'`.chomp end