DHCP Encoding/Decoding Utils

class bloxone.dhcp_encode[source]

Class to assist with Hex Encoding of DHCP Options and sub_options

binary_to_hex(data)[source]

Format hex string of binary/hex encoded data

Parameters

data (str) – data to format

Returns

hex encoding as string

boolean_to_hex(flag)[source]

Encode boolean value as single hex byte

Parameters

flag (bool/str) – True or False as bool or text

Returns

hex encoding as string

empty_to_hex(data)[source]
encode_data(sub_opt, padding=False, pad_bytes=1)[source]
encode_dhcp_option(sub_opt_defs=[], padding=False, pad_bytes=1, encapsulate=False, id=None)[source]
encode_sub_option(sub_opt, data_only=False, padding=False, pad_bytes=1)[source]
fqdn_to_hex(fqdn)[source]

Encode an fdqn in RFC 1035 Section 3.1 formatted hex

Parameters

fqdn (str) – hostname to encode

Returns

hex encoding as string

hex_length(hex_string)[source]
int_to_hex(i, size=8)[source]

Encode integer of specified size as signed int in hex

Parameters
  • i (int) – integer value to encode

  • size (int) – size in bits [8, 16, 32]

Returns

hex encoding as string

ip_to_hex(ip)[source]

Encode an IPv4 or IPv6 address to hex

Parameters

ip (str) – IPv4 or IPv6 address as a string

Returns

hex encoding as string

ipv4_address_to_hex(ipv4)[source]

Encode an IPv4 address to hex

Parameters

ipv4 (str) – IPv4 address as a string

Returns

hex encoding as string

ipv6_address_to_hex(ipv6)[source]

Encode an IPv6 address to hex

Parameters

ipv6 (str) – IPv4 or IPv6 address as a string

Returns

hex encoding as string

optcode_to_hex(optcode)[source]
string_to_hex(string)[source]

Encode a text string to hex

Parameters

string (str) – text string

Returns

hex encoding as string

tests()[source]
uint_to_hex(i, size=8)[source]

Encode integer of specified size as unsigned int in hex Uses 2’s compliment if supplied with negative number

Parameters
  • i (int) – integer value to encode

  • size (int) – size in bits [8, 16, 32]

Returns

hex encoding as string

validate_ip(ip)[source]

Validate input data is a valid IP address (Supports both IPv4 and IPv6)

Parameters

ip (str) – ip address as a string

Returns

Return True for valid and False otherwise

Return type

bool

class bloxone.DHCP_OPTION_DEFS(cfg='vendor_dict.yaml')[source]

Class to load and handle DHCP Option Defs

count()[source]

Returns count of defined vendors

dump_vendor_def(vendor)[source]

Returns the vendor definition as a dict

included(vendor)[source]

Check whether this vendor is configured

Returns bool

keys()[source]

Returns top level keys

option_def(vendor)[source]

Returns option definition as dict

parent_opt_def(vendor)[source]

Returns parent-option definition as dict

sub_options(vendor)[source]

Returns list of sub-option definitions

vendor_description(vendor)[source]

Returns description of vendor

vendor_keys(vendor)[source]

Returns vendor top level keys

vendors()[source]

Returns list of vendors

version()[source]

Returns config file version