使用某个端口获取进程的PID

时间:2011-06-17 09:52:34

标签: c# .net tcp

我需要一种方法,给定一个tcp端口号,发现是否有一些使用该端口的进程(并获取进程ID)。

netstat之类的东西只能以编程方式进行。

2 个答案:

答案 0 :(得分:2)

这对于原始海报可能为时已晚,但其他人可能会发现它很有用。您可以在System.Management.Automation命名空间中使用PowerShell类。

private static IEnumerable<uint> ProcessesUsingPorts(uint id)
{
    PowerShell ps = PowerShell.Create();
    ps.AddCommand("Get-NetTCPConnection").AddParameter("LocalPort", id);
    return ps.Invoke().Select(p => (uint)p.Properties["OwningProcess"].Value);
}

答案 1 :(得分:1)