using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;
using System.Collections.Generic;
using System.Net;
using System.Threading.Tasks;
namespace MediaBrowser.Common.Net
{
public interface INetworkManager
{
///
/// Gets a random port number that is currently available
///
/// System.Int32.
int GetRandomUnusedTcpPort();
int GetRandomUnusedUdpPort();
///
/// Returns MAC Address from first Network Card in Computer
///
/// [string] MAC Address
string GetMacAddress();
///
/// Determines whether [is in private address space] [the specified endpoint].
///
/// The endpoint.
/// true if [is in private address space] [the specified endpoint]; otherwise, false.
bool IsInPrivateAddressSpace(string endpoint);
///
/// Gets the network shares.
///
/// The path.
/// IEnumerable{NetworkShare}.
IEnumerable GetNetworkShares(string path);
///
/// Gets available devices within the domain
///
/// PC's in the Domain
IEnumerable GetNetworkDevices();
///
/// Determines whether [is in local network] [the specified endpoint].
///
/// The endpoint.
/// true if [is in local network] [the specified endpoint]; otherwise, false.
bool IsInLocalNetwork(string endpoint);
List GetLocalIpAddresses();
IpAddressInfo ParseIpAddress(string ipAddress);
bool TryParseIpAddress(string ipAddress, out IpAddressInfo ipAddressInfo);
Task GetHostAddressesAsync(string host);
}
}