IPv6網絡開發范例

*.下载:微软IPv6技术白皮书

 *.下述代码是列出所有的单播IPv6地址.
  private   void   DisplayAllAddresses()
    {
        NetworkInterface[]   adapters   =   NetworkInterface.GetAllNetworkInterfaces();
        int   i=0;
        foreach   (NetworkInterface   adapter   in   adapters)
            {

                IPInterfaceProperties   adapterProperties   =   adapter.GetIPProperties();
                UnicastIPAddressInformationCollection   allAddress   =  
                                                                                        adapterProperties.UnicastAddresses;
              if   (allAddress.Count     >   0)
                  {
                    textBox2.Text   += "interface   "+i+ "description:\n\t "+adapter.Description+ "\n ";
                                        i++;
                      foreach   (UnicastIPAddressInformation   addr   in   allAddress)
                          {
                              if   (addr.Address.AddressFamily   ==AddressFamily.InterNetworkV6)
                                              ipListComb.Items.Add(addr.Address);
                            }
                    }
          }
  } 

*.判断输入的字符串是否是合法的IPV6 地址
  public static bool IsIPV6(string input)
  {
   string pattern = "";
   string temp = input;
   string[] strs = temp.Split(':');
   if(strs.Length > 8)
   {
    return false;
   }
   int count = MetarnetRegex.GetStringCount(input,"::");
   if(count>1)
   {
    return false;
   }
   else if(count == 0)
   {
    pattern = @"^([\da-f]{1,4}:){7}[\da-f]{1,4}$";

    Regex regex = new Regex(pattern);
    return regex.IsMatch(input);
   }
   else
   {
    pattern = @"^([\da-f]{1,4}:){0,5}::([\da-f]{1,4}:){0,5}[\da-f]{1,4}$";
    Regex regex1 = new Regex(pattern);
    return regex1.IsMatch(input);
   }

}

posted on 2008-04-14 12:57  巍巍边疆  阅读(272)  评论(0编辑  收藏  举报