DeviceId An implementation of that executes a command. The command executed by the component. The command executor to use. Initializes a new instance of the class. The command executed by the component. The command executor. Gets the component value. The component value. An implementation of that gets its value from the result of a database command. A factory used to get a connection to the database. SQL query that returns a single value to be added to the device identifier. A function that transforms the result of the query into a string. Initializes a new instance of the class. A factory used to get a connection to the database. SQL query that returns a single value to be added to the device identifier. A function that transforms the result of the query into a string. Gets the component value. The component value. An implementation of that uses either a specified value or the result of a specified function as its component value. A function that returns the component value. Initializes a new instance of the class. The component value. Initializes a new instance of the class. A function that returns the component value. Gets the component value. The component value. An implementation of that retrieves its value from a file. The paths to read. Should the contents of the file be hashed? Initializes a new instance of the class. The path of the file holding the component ID. A value determining whether the file contents should be hashed. Initializes a new instance of the class. The paths to read. The first path that can be successfully read will be used. A value determining whether the file contents should be hashed. Gets the component value. The component value. An implementation of that retrieves its value from a file. If the file exists, the contents of that file will be used as the component value. If the file does not exist, a new file will be created and populated with a new GUID, which will be used as the component value. The path where the token will be stored. Initializes a new instance of the class. The path where the component will be stored. Gets the component value. The component value. An implementation of that uses the MAC Address of the PC. A value determining whether wireless devices should be excluded. Initializes a new instance of the class. A value determining whether wireless devices should be excluded. Gets the component value. The component value. Provides a fluent interface for constructing unique device identifiers. Gets or sets the formatter to use. A dictionary containing the components that will make up the device identifier. Initializes a new instance of the class. Adds a component to the device identifier. If a component with the specified name already exists, it will be replaced with this newly added component. The component name. The component to add. The builder instance. Returns a string representation of the device identifier. A string representation of the device identifier. Extension methods for . Use the specified formatter. The to use the formatter. The to use. The instance. Adds the current user name to the device identifier. The to add the component to. The instance. Adds the machine name to the device identifier. The to add the component to. The instance. Adds the operating system version to the device identifier. The to add the component to. The instance. Adds the MAC address to the device identifier, optionally excluding wireless adapters. The to add the component to. A value indicating whether wireless adapters should be excluded. The instance. Adds a file-based token to the device identifier. The to add the component to. The path of the token. The instance. Provides access to some of the default formatters. Returns the default formatter used in version 5 of the DeviceId library. Returns the default formatter used in version 6 of the DeviceId library. Provides functionality to manage the generation and validation of multiple device identifier formats. A dictionary mapping the version numbers to the device ID builders. The version encoder. Initializes a new instance of the class. Sets the version encoder to use. The version encoder. This instance. Adds a device identifier builder with the specified version number. The version number. The device identifier builder. This instance. Adds a device identifier builder with the specified version number. The version number. The device identifier builder configuration. This instance. Gets the device identifier from the builder with the highest version number. A device identifier. Gets the device identifier from the builder with the specified version number. The version number. A device identifier. Returns a value indicating whether the specified value is a valid identifier for this device. The value to validate. true if the value is a valid identifier for this device; otherwise, false. Returns a string representation of the device identifier generated from the builder with the highest version number. A device identifier. The default implementation of . Encodes a device identifier and a version number into a string. The device identifier. The version number. An encoded string comprising a device identifier and a version number. Attempts to decode a string into a device identifier and a version number. The string to decode. If successful, the device identifier; otherwise, null. If successful, the version number; otherwise, 0. true if the string was decoded successfully; otherwise, false. An implementation of that encodes byte arrays as Base32 strings. Gets the RFC-4648 Base32 alphabet. See https://datatracker.ietf.org/doc/html/rfc4648#section-6 Gets the Crockford Base32 alphabet. See https://www.crockford.com/base32.html Gets the alphabet in use. Initializes a new instance of the class. The alphabet to use. Encodes the specified byte array as a string. The byte array to encode. The byte array encoded as a string. An implementation of that encodes byte arrays as Base64 strings. Initializes a new instance of the class. Encodes the specified byte array as a string. The byte array to encode. The byte array encoded as a string. An implementation of that encodes byte arrays as Base64Url strings. Initializes a new instance of the class. Encodes the specified byte array as a string. The byte array to encode. The byte array encoded as a string. An implementation of that uses an arbitrary . A function that returns a new instance. Initializes a new instance of the class. A function that returns a new instance. Returns a hash of the specified byte array. The byte array to hash. A hash of the specified byte array. An implementation of that encodes components as hashes. The to use to hash the component value. The to use to encode the resulting hash. Initializes a new instance of the class. The to use to hash the component value. The to use to encode the resulting hash. Initializes a new instance of the class. A function that returns the hash algorithm to use. The to use to encode the resulting hash. Encodes the specified as a string. The component to encode. The component encoded as a string. An implementation of that encodes byte arrays as hex strings. Initializes a new instance of the class. Encodes the specified byte array as a string. The byte array to encode. The byte array encoded as a string. An implementation of that encodes components as plain text. Initializes a new instance of the class. Encodes the specified as a string. The component to encode. The component encoded as a string. An implementation of that combines the components into a hash. The to use to hash the device ID. The to use to encode the resulting hash. Initializes a new instance of the class. The to use to hash the device ID. The to use to encode the resulting hash. Initializes a new instance of the class. A function that returns the hash algorithm to use. The to use to encode the resulting hash. Returns the device identifier string created by combining the specified components. A dictionary containing the components. The device identifier string. An implementation of that combines the components into a concatenated string. The instance to use to encode individual components. The delimiter to use when concatenating the encoded component values. Initializes a new instance of the class. The instance to use to encode individual components. Initializes a new instance of the class. The instance to use to encode individual components. The delimiter to use when concatenating the encoded component values. Returns the device identifier string created by combining the specified components. A dictionary containing the components. The device identifier string. An implementation of that combines the components into an XML string. The instance to use to encode individual components. Initializes a new instance of the class. The instance to use to encode individual components. Returns the device identifier string created by combining the specified components. A dictionary containing the components. The device identifier string. Returns an XML element representing the specified components. A dictionary containing the components. An XML element representing the specified component values. Returns an XML element representing the specified component. The component name. The component. An XML element representing the specified component. Provides functionality to encode a byte array as a string. Encodes the specified byte array as a string. The byte array to encode. The byte array encoded as a string. Provides functionality to hash a byte array. Returns a hash of the specified byte array. The byte array to hash. A hash of the specified byte array. Represents a component that forms part of a device identifier. Gets the component value. The component value. Provides functionality to encode a as a string. Encodes the specified as a string. The component to encode. The component encoded as a string. Provides a method to combine a number of component values into a single device identifier string. Returns the device identifier string created by combining the specified components. A dictionary containing the components. The device identifier string. Provides functionality to encode/decode device identifiers and version numbers to/from strings. Encodes a device identifier and a version number into a string. The device identifier. The version number. An encoded string comprising a device identifier and a version number. Attempts to decode a string into a device identifier and a version number. The string to decode. If successful, the device identifier; otherwise, null. If successful, the version number; otherwise, 0. true if the string was decoded successfully; otherwise, false. Static instances of the various byte array encoders. Gets a base-32 byte array encoder that uses the Crockkford alphabet. Static instances of the various byte array hashers. Gets a byte array hasher that uses SHA256. An implementation of that uses /bin/bash to execute commands. Executes the specified command. The command to execute. The command output. Enumerate the various command executors that are available. Gets a command executor that uses /bin/bash to execute commands. A base implementation of . Executes the specified command. The command to execute. The command output. Runs the specified command with the specified shell. The shell to use. The command to run. The output. Provides functionality to execute a command. Executes the specified command. The command to execute. The command output. Provides functionality to format MAC addresses. Formats the specified MAC address. The MAC address to format. The formatted MAC address. Provides helper methods relating to the OS. Gets a value indicating whether this is a Windows OS. Gets a value indicating whether this is a Linux OS. Gets a value indicating whether this is Mac OS. Gets the current OS version.