C#网络适配器简单操作

2019-12-30 14:26:24王冬梅

(11).设置IP地址,子网掩码,网关,DNS


 /// <summary>
  /// 设置IP地址,子网掩码,网关,DNS,
  /// </summary>
  public bool SetIpAddressSubMaskDnsGetway(string ipAddress, string subMask, string getWay, string dnsMain, string dnsBackup)
  {
   string[] dnsArray;
   if (string.IsNullOrEmpty(dnsBackup))
   {
    dnsArray = new[] { dnsMain };
   }
   else
   {
    dnsArray = new[] { dnsMain, dnsBackup };
   }
   return SetIpAddress(new[] { ipAddress }, new[] { subMask }, new[] { getWay }, dnsArray);

  }

  /// <summary>
  /// 设置IP地址和子网掩码
  /// </summary>
  public bool SetIpAddressAndSubMask(string ipAddress, string subMask)
  {
   return SetIpAddress(new[] { ipAddress }, new[] { subMask }, null, null);

  }


  /// <summary>
  /// 设置IP网关
  /// </summary>
  public bool SetGetWayAddress(string getWay)
  {
   return SetIpAddress(null, null, new[] { getWay }, null);

  }

(12).设置主,备份DNS地址


  /// <summary>
  /// 设置主,备份DNS地址
  /// </summary>
  public bool SetDnsAddress(string dnsMain, string dnsBackup)
  {
   string[] dnsArray;
   if (string.IsNullOrEmpty(dnsBackup))
   {
    dnsArray = new[] { dnsMain };
   }
   else
   {
    dnsArray = new[] { dnsMain, dnsBackup };
   }
   return SetIpAddress(null, null, null, dnsArray);

  }

(13).得到IPV4地址


  /// <summary>
  /// 得到IPV4地址
  /// </summary>
  /// <returns></returns>
  private UnicastIPAddressInformation GetAddress()
  {
   if (IpAddresses == null || IpAddresses.Count <= 0) return null;
   switch (IpAddresses.Count)
   {
    case 3:
     return IpAddresses[2];
    case 2:
     return IpAddresses[1];
   }
   return IpAddresses[0];
  }

(14).检查设置IP地址,如果返回空,表示检查通过,为了方便返回就字符串了


  /// <summary>
  /// 检查设置IP地址,如果返回空,表示检查通过,为了方便返回就字符串了,没用枚举了
  /// </summary>
  /// <param name="ipAddress"></param>
  /// <param name="subMask"></param>
  /// <param name="getWay"></param>
  /// <param name="dnsMain"></param>
  /// <param name="dnsBackup"></param>
  /// <returns></returns>
  public string IsIPAddress(string ipAddress, string subMask, string getWay, string dnsMain, string dnsBackup)
  {
   if (!string.IsNullOrEmpty(ipAddress))
   {
    if (!IsIPAddress(ipAddress)) return "IP地址格式不对";
   }
   if (!string.IsNullOrEmpty(subMask))
   {
    if (!IsIPAddress(subMask)) return "子网掩码格式不对";
   }
   if (!string.IsNullOrEmpty(getWay))
   {
    if (!IsIPAddress(getWay)) return "网关地址格式不对";
   }
   if (!string.IsNullOrEmpty(dnsMain))
   {
    if (!IsIPAddress(dnsMain)) return "主DNS地址格式不对";
   }
   if (string.IsNullOrEmpty(dnsBackup)) return "";
   return !IsIPAddress(dnsBackup) ? "备用DNS地址格式不对" : "";
  }