Common.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace TeamAAS_VP.Core
  8. {
  9. public static class Common
  10. {
  11. /// <summary>
  12. /// 解析带前导零的 IP 地址字符串
  13. /// </summary>
  14. /// <param name="ipString"></param>
  15. /// <returns></returns>
  16. /// <exception cref="FormatException"></exception>
  17. public static IPAddress ParseIpWithLeadingZeros(string ipString)
  18. {
  19. // 分割 IP 地址的四个部分
  20. string[] parts = ipString.Split('.');
  21. if (parts.Length != 4)
  22. throw new FormatException("Invalid IP address format.");
  23. // 处理每个部分的前导零
  24. for (int i = 0; i < parts.Length; i++)
  25. {
  26. string part = parts[i];
  27. if (string.IsNullOrEmpty(part))
  28. throw new FormatException("IP part cannot be empty.");
  29. // 去除前导零(保留纯 "0" 的情况)
  30. if (part.Length > 1 && part.StartsWith("0"))
  31. {
  32. part = part.TrimStart('0');
  33. // 如果去除后为空,说明原部分全为0,补回一个0
  34. if (string.IsNullOrEmpty(part))
  35. part = "0";
  36. }
  37. // 验证数值范围 0-255
  38. if (!int.TryParse(part, out int value) || value < 0 || value > 255)
  39. return null;
  40. parts[i] = value.ToString(); // 确保无前导零的字符串
  41. }
  42. // 重新组合为修正后的 IP 地址
  43. string correctedIp = string.Join(".", parts);
  44. return IPAddress.Parse(correctedIp);
  45. }
  46. /// <summary>
  47. /// 将DataTable导出到csv文件中
  48. /// </summary>
  49. /// <param name="dataTable"></param>
  50. /// <param name="filePath"></param>
  51. public static void ExportToCsv(System.Data.DataTable dataTable, string filePath)
  52. {
  53. StringBuilder sb = new StringBuilder();
  54. //添加列名
  55. foreach (System.Data.DataColumn column in dataTable.Columns)
  56. {
  57. sb.Append(column.ColumnName + ",");
  58. }
  59. sb.AppendLine();
  60. //添加数据
  61. foreach (System.Data.DataRow row in dataTable.Rows)
  62. {
  63. foreach (var item in row.ItemArray)
  64. {
  65. sb.Append(item.ToString() + ",");
  66. }
  67. sb.AppendLine();
  68. }
  69. System.IO.File.WriteAllText(filePath, sb.ToString());
  70. }
  71. }
  72. }