Esempio n. 1
0
 /// <summary>
 /// Compare value against IPAddress, byte array, UInt32, IpAddress of OctetString class value.
 /// </summary>
 /// <param name="obj">Type: <see cref="System.Net.IPAddress"/> or byte <see cref="Array"/> or <see cref="UInt32"/> or <see cref="IpAddress"/> or <see cref="OctetString"/></param>
 /// <returns>0 if class values are the same, -1 if current class value is less then or 1 if greater then the class value
 /// we are comparing against.</returns>
 public int CompareTo(object obj)
 {
     byte[] b = null;
     if (obj == null)
     {
         return(-1);
     }
     if (obj is IPAddress)
     {
         IPAddress ipa = (IPAddress)obj;
         b = ipa.GetAddressBytes();
     }
     else if (obj is byte[])
     {
         b = (byte[])obj;
     }
     else if (obj is UInt32)
     {
         IpAddress ipa = new IpAddress((UInt32)obj);
         b = ipa.ToArray();
     }
     else if (obj is IpAddress)
     {
         b = ((IpAddress)obj).ToArray();
     }
     else if (obj is OctetString)
     {
         b = ((OctetString)obj).ToArray();
     }
     if (_data == null)
     {
         return(-1);
     }
     if (b.Length != _data.Length)
     {
         if (_data.Length < b.Length)
         {
             return(-1);
         }
         else
         {
             return(1);
         }
     }
     else
     {
         for (int i = 0; i < _data.Length; i++)
         {
             if (_data[i] < b[i])
             {
                 return(-1);
             }
             else if (_data[i] > b[i])
             {
                 return(1);
             }
         }
         return(0);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Return subnet address of the IP address in this object and supplied subnet mask
 /// </summary>
 /// <param name="mask">Subnet mask</param>
 /// <returns>New IpAddress object containing subnet address</returns>
 public IpAddress GetSubnetAddress(IpAddress mask)
 {
     byte[] ip  = _data;
     byte[] m   = mask.ToArray();
     byte[] res = new byte[4];
     for (int i = 0; i < 4; i++)
     {
         res[i] = (byte)(ip[i] & m[i]);
     }
     return(new IpAddress(res));
 }
Esempio n. 3
0
        /// <summary>
        ///     Return subnet address of the IP address in this object and supplied subnet mask
        /// </summary>
        /// <param name="mask">Subnet mask</param>
        /// <returns>New IpAddress object containing subnet address</returns>
        public IpAddress GetSubnetAddress(IpAddress mask)
        {
            var ip  = _data;
            var m   = mask.ToArray();
            var res = new byte[4];

            for (var i = 0; i < 4; i++)
            {
                res[i] = (byte)(ip[i] & m[i]);
            }
            return(new IpAddress(res));
        }
Esempio n. 4
0
 /// <summary>
 /// Return subnet address of the IP address in this object and supplied subnet mask
 /// </summary>
 /// <param name="mask">Subnet mask</param>
 /// <returns>New IpAddress object containing subnet address</returns>
 public IpAddress GetSubnetAddress(IpAddress mask)
 {
     byte[] ip = _data;
     byte[] m = mask.ToArray();
     byte[] res = new byte[4];
     for (int i = 0; i < 4; i++)
     {
         res[i] = (byte)(ip[i] & m[i]);
     }
     return new IpAddress(res);
 }
Esempio n. 5
0
 /// <summary>
 /// Compare value against IPAddress, byte array, UInt32, IpAddress of OctetString class value.
 /// </summary>
 /// <param name="obj">Type: <see cref="System.Net.IPAddress"/> or byte <see cref="Array"/> or <see cref="UInt32"/> or <see cref="IpAddress"/> or <see cref="OctetString"/></param>
 /// <returns>0 if class values are the same, -1 if current class value is less then or 1 if greater then the class value
 /// we are comparing against.</returns>
 public int CompareTo(object obj)
 {
     byte[] b = null;
     if (obj == null)
         return -1;
     if (obj is IPAddress)
     {
         IPAddress ipa = (IPAddress)obj;
         b = ipa.GetAddressBytes();
     }
     else if (obj is byte[])
     {
         b = (byte[])obj;
     }
     else if (obj is UInt32)
     {
         IpAddress ipa = new IpAddress((UInt32)obj);
         b = ipa.ToArray();
     }
     else if (obj is IpAddress)
     {
         b = ((IpAddress)obj).ToArray();
     }
     else if (obj is OctetString)
     {
         b = ((OctetString)obj).ToArray();
     }
     if (_data == null)
         return -1;
     if (b.Length != _data.Length)
     {
         if (_data.Length < b.Length)
             return -1;
         else
             return 1;
     }
     else
     {
         for (int i = 0; i < _data.Length; i++)
         {
             if (_data[i] < b[i])
             {
                 return -1;
             }
             else if (_data[i] > b[i])
             {
                 return 1;
             }
         }
         return 0;
     }
 }