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.cs72
1 files changed, 72 insertions, 0 deletions
diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs
new file mode 100644
index 000000000..7f6bfe152
--- /dev/null
+++ b/MediaBrowser.Common/Net/INetworkManager.cs
@@ -0,0 +1,72 @@
+using System.Collections.Generic;
+using MediaBrowser.Model.Net;
+
+namespace MediaBrowser.Common.Net
+{
+ public interface INetworkManager
+ {
+ /// <summary>
+ /// Gets the machine's local ip address
+ /// </summary>
+ /// <returns>IPAddress.</returns>
+ string GetLocalIpAddress();
+
+ /// <summary>
+ /// Gets a random port number that is currently available
+ /// </summary>
+ /// <returns>System.Int32.</returns>
+ int GetRandomUnusedPort();
+
+ /// <summary>
+ /// Creates the netsh URL registration.
+ /// </summary>
+ void AuthorizeHttpListening(string url);
+
+ /// <summary>
+ /// Adds the windows firewall rule.
+ /// </summary>
+ /// <param name="port">The port.</param>
+ /// <param name="protocol">The protocol.</param>
+ void AddSystemFirewallRule(int port, NetworkProtocol protocol);
+
+ /// <summary>
+ /// Removes the windows firewall rule.
+ /// </summary>
+ /// <param name="port">The port.</param>
+ /// <param name="protocol">The protocol.</param>
+ void RemoveSystemFirewallRule(int port, NetworkProtocol protocol);
+
+ /// <summary>
+ /// Returns MAC Address from first Network Card in Computer
+ /// </summary>
+ /// <returns>[string] MAC Address</returns>
+ string GetMacAddress();
+
+ /// <summary>
+ /// Gets available devices within the domain
+ /// </summary>
+ /// <returns>PC's in the Domain</returns>
+ IEnumerable<string> GetNetworkDevices();
+
+ /// <summary>
+ /// Gets the network shares.
+ /// </summary>
+ /// <param name="path">The path.</param>
+ /// <returns>IEnumerable{NetworkShare}.</returns>
+ IEnumerable<NetworkShare> GetNetworkShares(string path);
+ }
+ /// <summary>
+ /// Enum NetworkProtocol
+ /// </summary>
+ public enum NetworkProtocol
+ {
+ /// <summary>
+ /// The TCP
+ /// </summary>
+ Tcp,
+ /// <summary>
+ /// The UDP
+ /// </summary>
+ Udp
+ }
+} \ No newline at end of file