Пример #1
0
 /// <summary>
 ///   インスタンスがsrcで示されるアドレスと同じかどうかを返す
 /// </summary>
 public bool Equals(Ipaddr src)
 {
     if (src == null)
     {
         return(false);
     }
     if (IsValid())
     {
         if (!src.IsValid())
         {
             return(false);
         }
         if (vals.Length != src.vals.Length)
         {
             return(false);
         }
         for (int i = 0; i < vals.Length; i++)
         {
             if (vals[i] != src.vals[i])
             {
                 return(false);
             }
         }
         return(true);
     }
     else
     {
         if (src.IsValid())
         {
             return(false);
         }
         return(true);
     }
 }
Пример #2
0
 /// <summary>
 ///   インスタンスがsrcで示されるアドレスパターンを内包しているかどうかをチェックする
 /// </summary>
 public bool Contains(Ipaddr src)
 {
     if (!src.IsValid())
     {
         return(false);
     }
     return(ToString().Contains(src.ToString()));
 }
Пример #3
0
 /// <summary>
 ///   文字列表現を返す
 /// </summary>
 /// <remarks>
 ///   <para>
 ///     開始アドレスと終了アドレスが同一の場合は単一IPアドレスの形式、
 ///     さもなければ '-'で開始アドレスを終了アドレスをつなげた形式。
 ///     無効なIPアドレスの場合は空文字列を返します。
 ///   </para>
 /// </remarks>
 override public string ToString()
 {
     if (!StartAddr.IsValid())
     {
         return("");
     }
     if (!EndAddr.IsValid() || EndAddr.IsZero() || (StartAddr == EndAddr))
     {
         return(StartAddr.ToString());
     }
     return(StartAddr.ToString() + "-" + EndAddr.ToString());
 }
Пример #4
0
 /// <summary>
 ///   他のIpaddrをコピーする
 /// </summary>
 /// <returns>自分自身</returns>
 public Ipaddr Set(Ipaddr ipaddr)
 {
     if ((ipaddr != null) && ipaddr.IsValid())
     {
         if ((vals == null) || (vals.Length != ipaddr.vals.Length))
         {
             vals = new byte[ipaddr.vals.Length];
         }
         for (int i = 0; i < vals.Length; i++)
         {
             vals[i] = ipaddr.vals[i];
         }
     }
     else
     {
         Clear();
     }
     return(this);
 }