实际是通过c#编程方式调用了CMD命令行,然后调用netstat命令,然后将CMD命令的输出流转到了C#控制台程序上。也可以将结果输出到文件。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace _19获得系统打开的端口和状态 { class Program { static void Main(string[] args) { 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(@"netstat -a -n>c:port.txt");//将字符串写入文本流 p.StandardInput.WriteLine(@"netstat -a -n"); string str; while ((str = p.StandardOutput.ReadLine()) != null) { Console.WriteLine(str); } Console.ReadKey(); } } }