Class: DhcpsApi::DHCP_CLIENT_UID
Overview
typedef struct _DHCP_BINARY_DATA {
DWORD DataLength;
BYTE *Data;
} DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA, DHCP_CLIENT_UID;
Class Method Summary
collapse
Instance Method Summary
collapse
#as_ruby_struct, ruby_struct_attr
#dhcp_client_uid_to_mac, #ip_to_uint32, #mac_address_to_array_of_uint8, #to_string, #to_wchar_string, #uint32_to_ip, #wchar_string_length
Class Method Details
.from_mac_address(mac_address) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/dhcpsapi/data_structures.rb', line 43
def self.from_mac_address(mac_address)
to_return = new
mac_as_uint8s = to_return.mac_address_to_array_of_uint8(mac_address)
to_return[:data_length] = mac_as_uint8s.size
to_return[:data] = FFI::MemoryPointer.new(:uint8, mac_as_uint8s.size)
to_return[:data].write_array_of_uint8(mac_as_uint8s)
to_return
end
|
Instance Method Details
#data_as_ruby_struct_attr ⇒ Object
68
69
70
|
# File 'lib/dhcpsapi/data_structures.rb', line 68
def data_as_ruby_struct_attr
self[:data].read_array_of_type(:uint8, :read_uint8, self[:data_length]).map {|w| "%02X" % w}.join(":")
end
|
#initialize_with_subnet_and_mac_addresses(subnet_address, mac_address) ⇒ Object
60
61
62
63
64
65
66
|
# File 'lib/dhcpsapi/data_structures.rb', line 60
def initialize_with_subnet_and_mac_addresses(subnet_address, mac_address)
mac_as_uint8s = mac_address_to_array_of_uint8(mac_address)
subnet_as_uint8s = subnet_address.split('.').reverse.map {|octet| octet.to_i}
self[:data_length] = 11
self[:data] = FFI::MemoryPointer.new(:uint8, 11)
self[:data].write_array_of_uint8(subnet_as_uint8s + [0x1] + mac_as_uint8s)
end
|
#intialize_with_mac_address(mac_address) ⇒ Object
52
53
54
55
56
57
58
|
# File 'lib/dhcpsapi/data_structures.rb', line 52
def intialize_with_mac_address(mac_address)
mac_as_uint8s = mac_address_to_array_of_uint8(mac_address)
self[:data_length] = mac_as_uint8s.size
self[:data] = FFI::MemoryPointer.new(:uint8, mac_as_uint8s.size)
self[:data].write_array_of_uint8(mac_as_uint8s)
self
end
|