c# - 如何检查谁在 C# 中使用某个端口?

标签 c# networking port tcp

如何确定哪个进程/哪个可执行文件正在使用,比如说,我本地主机的端口 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/

相关文章:

c# - 为什么我的保存使用我的文本框的初始值而不是输入的值?

linux - CPU IO端口如何真正工作?

c# - 从 C# 中的 IP 获取本地网络上机器的 MAC 地址

port - 以管理员权限运行 IIS Express

c# - 如何使图像随着浏览器大小的动态变化而自动调整大小?

c#在失去焦点时将文本框格式化为货币

c# - 获取 PowerShell 脚本以在 Azure 上运行 SharePoint 命令

Java - 运行基本套接字网络程序时遇到问题

linux - Mininet Ping 问题

ios - 在Swift中尝试连接WebSocket时总是出现错误