首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實現 Ping 功能:Process 啟動 cmd 解析輸出

     編輯:關於C語言

透過 `System.Diagnostics.Process` 啟動隱藏的 `cmd.exe`,注入 `ping` 命令並捕獲標準輸出流分析結果。

核心代碼

Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;

p.Start();
p.StandardInput.WriteLine($"ping -n 1 {targetIp}");
p.StandardInput.WriteLine("exit");

string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

// 解析 output 判斷連通性、延遲、丟包率等

優缺點分析

  • ✅ 簡單直接,無需 P/Invoke `IcmpSendEcho`
  • ✅ 獲取完整文本輸出,便於人工閱讀或正則解析
  • ❌ 啟動進程開銷大,不適合高頻輪詢
  • ❌ 跨平台性差(依賴 Windows `ping.exe` 參數格式)

現代替代方案

.NET Core / .NET 5+ 推薦使用 `System.Net.NetworkInformation.Ping` 類,原生、跨平台、高效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved