一个查询excel记录的ip并ping的小程序

因为现场的设备ip配置都是固定的,有时候想测试网络怎么样要挨个ping特麻烦,就弄了个方法来ping,文件路径暂时都是写死的

.net core 的 一个控制台程序

  1 static void Main(string[] args)
  2         {
  3             Console.WriteLine("Hello World!");
  4             DataSet ds =  ToDataTable("F:\***\***\IP地址分配.xlsx");
  5             DataTable dt = ds.Tables[0];
  6             string butrong = string.Empty;
  7             for (int i = 0; i < dt.Rows.Count; i++)
  8             {
  9                 string ip = dt.Rows[i][3].ToString().Trim().Replace("", ".");
 10                 if (!string.IsNullOrEmpty(ip))
 11                 {
 12                     string rtn = (PingIp(ip) ? "trun" : "false");
 13                     if (rtn == "false")
 14                     {
 15                         butrong += dt.Rows[i][2].ToString();
 16                         butrong += ip;
 17                         butrong += "||";
 18                     }
 19                     Console.WriteLine("pingIP" + ip+" : "+ rtn);
 20                 }
 21                 
 22             }
 23             Console.WriteLine("不通的ip有:"+ butrong);
 24         }
 25         /// <summary>
 26         /// ping ip,测试能否ping通
 27         /// </summary>
 28         /// <param name="strIP">IP地址</param>
 29         /// <returns></returns>
 30         private static bool PingIp(string strIP)
 31         {
 32             bool bRet = false;
 33             try
 34             {
 35                 Ping pingSend = new Ping();
 36                 PingReply reply = pingSend.Send(strIP, 1000);
 37                 if (reply.Status == IPStatus.Success)
 38                     bRet = true;
 39             }
 40             catch (Exception)
 41             {
 42                 bRet = false;
 43             }
 44             return bRet;
 45         }
 46 
 47 
 48 
 49         /// <summary>  
 50         /// 读取Excel文件到DataSet中  
 51         /// </summary>  
 52         /// <param name="filePath">文件路径</param>  
 53         /// <returns></returns>  
 54         public static DataSet ToDataTable(string filePath)
 55         {
 56             string connStr = "";
 57             string fileType = System.IO.Path.GetExtension("F:\***\***\IP地址分配.xlsx");
 58             if (string.IsNullOrEmpty(fileType)) return null;
 59 
 60             if (fileType == ".xls")
 61                 connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + ";Extended Properties="Excel 8.0;HDR=YES;IMEX=1"";
 62             else
 63                 connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + ";Extended Properties="Excel 12.0;HDR=YES;IMEX=1"";
 64             string sql_F = "Select * FROM [{0}]";
 65 
 66             OleDbConnection conn = null;
 67             OleDbDataAdapter da = null;
 68             DataTable dtSheetName = null;
 69 
 70             DataSet ds = new DataSet();
 71             try
 72             {
 73                 // 初始化连接,并打开  
 74                 conn = new OleDbConnection(connStr);
 75                 conn.Open();
 76 
 77                 // 获取数据源的表定义元数据                         
 78                 string SheetName = "";
 79                 dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
 80 
 81                 // 初始化适配器  
 82                 da = new OleDbDataAdapter();
 83                 for (int i = 0; i < dtSheetName.Rows.Count; i++)
 84                 {
 85                     SheetName = (string)dtSheetName.Rows[i]["TABLE_NAME"];
 86 
 87                     if (SheetName.Contains("$") && !SheetName.Replace("'", "").EndsWith("$"))
 88                     {
 89                         continue;
 90                     }
 91 
 92                     da.SelectCommand = new OleDbCommand(String.Format(sql_F, SheetName), conn);
 93                     DataSet dsItem = new DataSet();
 94                     da.Fill(dsItem,i.ToString());//这里找个第二个参数还没弄明白是干嘛用的,网上抄的
 95 
 96                     ds.Tables.Add(dsItem.Tables[0].Copy());
 97                 }
 98             }
 99             catch (Exception ex)
100             {
101             }
102             finally
103             {
104                 // 关闭连接  
105                 if (conn.State == ConnectionState.Open)
106                 {
107                     conn.Close();
108                     da.Dispose();
109                     conn.Dispose();
110                 }
111             }
112             return ds;
113         }
原文地址:https://www.cnblogs.com/big-lll/p/13913805.html