手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#获取Windows进程监听的TCP/UDP端口实例
C#获取Windows进程监听的TCP/UDP端口实例
摘要:1、在Windows下用CMDnetstat命令可以获得当前进程监听端口号的信息,如netstat-ano可以看到IP、port、状态和监听...

1、在Windows下用CMD netstat命令可以获得当前进程监听端口号的信息,如netstat -ano可以看到IP、port、状态和监听的PID。

那么可以执行CMD这个进程得到监听的端口号信息,C#代码如下:

复制代码 代码如下:

//进程id

int pid = ProcInfo.ProcessID;

//存放进程使用的端口号链表

List<int> ports = new List<int>();

Process pro = new Process();

pro.StartInfo.FileName = "cmd.exe";

pro.StartInfo.UseShellExecute = false;

pro.StartInfo.RedirectStandardInput = true;

pro.StartInfo.RedirectStandardOutput = true;

pro.StartInfo.RedirectStandardError = true;

pro.StartInfo.CreateNoWindow = true;

pro.Start();

pro.StandardInput.WriteLine("netstat -ano");

pro.StandardInput.WriteLine("exit");

Regex reg = new Regex("s+", RegexOptions.Compiled);

string line = null;

ports.Clear();

while ((line = pro.StandardOutput.ReadLine()) != null)

{

line = line.Trim();

if (line.StartsWith("TCP", StringComparison.OrdinalIgnoreCase))

{

line = reg.Replace(line, ",");

string[] arr = line.Split(',');

if (arr[4] == pid.ToString())

{

string soc = arr[1];

int pos = soc.LastIndexOf(':');

int pot = int.Parse(soc.Substring(pos + 1));

ports.Add(pot);

}

}

else if (line.StartsWith("UDP", StringComparison.OrdinalIgnoreCase))

{

line = reg.Replace(line, ",");

string[] arr = line.Split(',');

if (arr[3] == pid.ToString())

{

string soc = arr[1];

int pos = soc.LastIndexOf(':');

int pot = int.Parse(soc.Substring(pos + 1));

ports.Add(pot);

}

}

}

pro.Close();

【C#获取Windows进程监听的TCP/UDP端口实例】相关文章:

C#取得Web程序和非Web程序的根目录的N种取法总结

读取图片像素的具体实例

c#获取本机的IP地址的代码

c# 对windows用户和组操作实例

C# 获取枚举值的简单实例

C#中控制远程计算机的服务的方法

C# 对MongoDB 进行增删改查的简单操作实例

c#自定义泛型类的实现

C# 手动/自动保存图片的实例代码

使用C#实现在屏幕上画图效果的代码实例

精品推荐
分类导航