aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Net/INetworkManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Common/Net/INetworkManager.cs')
-rw-r--r--MediaBrowser.Common/Net/INetworkManager.cs66
1 files changed, 66 insertions, 0 deletions
diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs
new file mode 100644
index 000000000..b2ff797bc
--- /dev/null
+++ b/MediaBrowser.Common/Net/INetworkManager.cs
@@ -0,0 +1,66 @@
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Net;
+using System.Collections.Generic;
+using System;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Common.Net
+{
+ public interface INetworkManager
+ {
+ event EventHandler NetworkChanged;
+
+ /// <summary>
+ /// Gets a random port number that is currently available
+ /// </summary>
+ /// <returns>System.Int32.</returns>
+ int GetRandomUnusedTcpPort();
+
+ int GetRandomUnusedUdpPort();
+
+ Func<string[]> LocalSubnetsFn { get; set; }
+
+ /// <summary>
+ /// Returns MAC Address from first Network Card in Computer
+ /// </summary>
+ /// <returns>[string] MAC Address</returns>
+ List<string> GetMacAddresses();
+
+ /// <summary>
+ /// Determines whether [is in private address space] [the specified endpoint].
+ /// </summary>
+ /// <param name="endpoint">The endpoint.</param>
+ /// <returns><c>true</c> if [is in private address space] [the specified endpoint]; otherwise, <c>false</c>.</returns>
+ bool IsInPrivateAddressSpace(string endpoint);
+
+ /// <summary>
+ /// Gets the network shares.
+ /// </summary>
+ /// <param name="path">The path.</param>
+ /// <returns>IEnumerable{NetworkShare}.</returns>
+ IEnumerable<NetworkShare> GetNetworkShares(string path);
+
+ /// <summary>
+ /// Gets available devices within the domain
+ /// </summary>
+ /// <returns>PC's in the Domain</returns>
+ IEnumerable<FileSystemEntryInfo> GetNetworkDevices();
+
+ /// <summary>
+ /// Determines whether [is in local network] [the specified endpoint].
+ /// </summary>
+ /// <param name="endpoint">The endpoint.</param>
+ /// <returns><c>true</c> if [is in local network] [the specified endpoint]; otherwise, <c>false</c>.</returns>
+ bool IsInLocalNetwork(string endpoint);
+
+ IpAddressInfo[] GetLocalIpAddresses();
+
+ IpAddressInfo ParseIpAddress(string ipAddress);
+
+ bool TryParseIpAddress(string ipAddress, out IpAddressInfo ipAddressInfo);
+
+ Task<IpAddressInfo[]> GetHostAddressesAsync(string host);
+
+ bool IsAddressInSubnets(string addressString, string[] subnets);
+ }
+} \ No newline at end of file