public INetworkInterfaceData GetActiveNetworkInterface(IPAddress localIPAddress, List <INetworkInterfaceData> networkInterfaces)
        {
            if (_activeNetworkInterface != null)
            {
                return(_activeNetworkInterface);
            }

            try
            {
                foreach (var networkInterface in networkInterfaces)
                {
                    foreach (var ipAddress in networkInterface.UnicastIPAddresses)
                    {
                        if (ipAddress.Address.Equals(localIPAddress))
                        {
                            return(_activeNetworkInterface = networkInterface);
                        }

                        continue;
                    }
                }
            }
            catch (Exception exception)
            {
                Log.WarnFormat("Unable to get an active network interface: {0}", exception.Message);
            }
            return(_activeNetworkInterface = new NetworkInterfaceData(string.Empty, new List <UnicastIPAddressInformation>()));
        }
        public string GetDomainName(INetworkInterfaceData networkInterfaceData)
        {
            try
            {
                return(networkInterfaceData?.DnsSuffix ?? string.Empty);
            }
            catch (Exception exception)
            {
                Log.WarnFormat($"Error retrieving domain name from network interface: {0}", exception);
            }

            return(string.Empty);
        }