using System; namespace MediaBrowser.Model.Net { public class IpAddressInfo { public static IpAddressInfo Any = new IpAddressInfo("0.0.0.0", IpAddressFamily.InterNetwork); public static IpAddressInfo IPv6Any = new IpAddressInfo("00000000000000000000", IpAddressFamily.InterNetworkV6); public static IpAddressInfo Loopback = new IpAddressInfo("127.0.0.1", IpAddressFamily.InterNetwork); public static IpAddressInfo IPv6Loopback = new IpAddressInfo("::1", IpAddressFamily.InterNetworkV6); public string Address { get; set; } public IpAddressFamily AddressFamily { get; set; } public IpAddressInfo(string address, IpAddressFamily addressFamily) { if (string.IsNullOrWhiteSpace(address)) { throw new ArgumentNullException("address"); } Address = address; AddressFamily = addressFamily; } public bool Equals(IpAddressInfo address) { return string.Equals(address.Address, Address, StringComparison.OrdinalIgnoreCase); } public override String ToString() { return Address; } } public enum IpAddressFamily { InterNetwork, InterNetworkV6 } }