Files
metasploit-gs/lib/rex/post/meterpreter/extensions/stdapi/net/interface.rb
T
kris 672fd9e977 Meterpreter ipconfig Ruby 1.9 fix. This fixes string indexing errors and
(after that was fixed) the fact that sprintf "%02X" now decides to bail when
given a nil instead of it giving zeros.


git-svn-id: file:///home/svn/framework3/trunk@7133 4d416f70-5f16-0410-b530-b9f4589650da
2009-10-08 16:46:13 +00:00

74 lines
1.3 KiB
Ruby

#!/usr/bin/env ruby
require 'ipaddr'
module Rex
module Post
module Meterpreter
module Extensions
module Stdapi
module Net
###
#
# This class represents a logical physical interface
# on the remote machine.
#
###
class Interface
##
#
# Constructor
#
##
#
# Returns a logical interface and initializes it to the supplied
# parameters.
#
def initialize(ip, netmask, mac_addr, mac_name)
self.ip = IPAddr.ntop(ip)
self.netmask = IPAddr.ntop(netmask)
self.mac_addr = mac_addr
self.mac_name = mac_name
end
#
# Returns a pretty string representation of the interface's properties.
#
def pretty
macocts = []
mac_addr.each_byte { |o| macocts << o }
macocts += [0] * (6 - macocts.size) if macocts.size < 6
return sprintf(
"#{mac_name}\n" +
"Hardware MAC: %02x:%02x:%02x:%02x:%02x:%02x\n" +
"IP Address : %s\n" +
"Netmask : %s\n" +
"\n",
macocts[0], macocts[1], macocts[2], macocts[3],
macocts[4], macocts[5], ip, netmask)
end
#
# The IP address bound to the interface.
#
attr_accessor :ip
#
# The subnet mask associated with the interface.
#
attr_accessor :netmask
#
# The physical (MAC) address of the NIC.
#
attr_accessor :mac_addr
#
# The name of the interface.
#
attr_accessor :mac_name
end
end; end; end; end; end; end