IpAddressInfo.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. namespace MediaBrowser.Model.Net
  3. {
  4. public class IpAddressInfo
  5. {
  6. public static IpAddressInfo Any = new IpAddressInfo("0.0.0.0", IpAddressFamily.InterNetwork);
  7. public static IpAddressInfo IPv6Any = new IpAddressInfo("00000000000000000000", IpAddressFamily.InterNetworkV6);
  8. public static IpAddressInfo Loopback = new IpAddressInfo("127.0.0.1", IpAddressFamily.InterNetwork);
  9. public static IpAddressInfo IPv6Loopback = new IpAddressInfo("::1", IpAddressFamily.InterNetworkV6);
  10. public string Address { get; set; }
  11. public IpAddressFamily AddressFamily { get; set; }
  12. public IpAddressInfo(string address, IpAddressFamily addressFamily)
  13. {
  14. if (string.IsNullOrWhiteSpace(address))
  15. {
  16. throw new ArgumentNullException("address");
  17. }
  18. Address = address;
  19. AddressFamily = addressFamily;
  20. }
  21. public bool Equals(IpAddressInfo address)
  22. {
  23. return string.Equals(address.Address, Address, StringComparison.OrdinalIgnoreCase);
  24. }
  25. public override String ToString()
  26. {
  27. return Address;
  28. }
  29. }
  30. public enum IpAddressFamily
  31. {
  32. InterNetwork,
  33. InterNetworkV6
  34. }
  35. }