using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace TeamAAS_VP.Core { public static class Common { /// /// 解析带前导零的 IP 地址字符串 /// /// /// /// public static IPAddress ParseIpWithLeadingZeros(string ipString) { // 分割 IP 地址的四个部分 string[] parts = ipString.Split('.'); if (parts.Length != 4) throw new FormatException("Invalid IP address format."); // 处理每个部分的前导零 for (int i = 0; i < parts.Length; i++) { string part = parts[i]; if (string.IsNullOrEmpty(part)) throw new FormatException("IP part cannot be empty."); // 去除前导零(保留纯 "0" 的情况) if (part.Length > 1 && part.StartsWith("0")) { part = part.TrimStart('0'); // 如果去除后为空,说明原部分全为0,补回一个0 if (string.IsNullOrEmpty(part)) part = "0"; } // 验证数值范围 0-255 if (!int.TryParse(part, out int value) || value < 0 || value > 255) return null; parts[i] = value.ToString(); // 确保无前导零的字符串 } // 重新组合为修正后的 IP 地址 string correctedIp = string.Join(".", parts); return IPAddress.Parse(correctedIp); } /// /// 将DataTable导出到csv文件中 /// /// /// public static void ExportToCsv(System.Data.DataTable dataTable, string filePath) { StringBuilder sb = new StringBuilder(); //添加列名 foreach (System.Data.DataColumn column in dataTable.Columns) { sb.Append(column.ColumnName + ","); } sb.AppendLine(); //添加数据 foreach (System.Data.DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { sb.Append(item.ToString() + ","); } sb.AppendLine(); } System.IO.File.WriteAllText(filePath, sb.ToString()); } } }