如何确定哪个进程/哪个可执行文件正在使用,比如说,我本地主机的端口 80?我想知道,例如它是否是 Apache Server 等。
我们可以从 ipProperties.GetActiveTcpListeners() 获取一些信息吗?我只看到了本地端点、远程端点和状态。
最佳答案
您可以通过管道传输 netstat -o
的输出并解析它,但这可能是一个充满头痛和极端情况的糟糕想法。
在幕后,netstat -o
使用 GetTcpTable2来自 IPHelper 库的 API 方法,它返回一个 MIB_TCPTABLE2 结构,每个端口由一个 MIB_TCPROW2 结构表示。您必须使用 P/Invoke 从 C# 访问它,为表和行构建互操作结构
检查 PInvoke.Net,我看到类似的 API 调用已经映射到 C# - GetExtendedTcpTable - 列出应用程序可用的 TCP 端口。您可以将其用作构建互操作结构和声明的基础。
关于c# - 如何检查谁在 C# 中使用某个端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110211/