【发布时间】:2009-09-12 09:37:47
【问题描述】:
我正在尝试获取进程在 c# 中连接的 IP 地址。有没有简单的方法可以做到这一点?
【问题讨论】:
-
我不确定您要什么。进程没有连接,套接字是由进程创建的。你可以说得更详细点吗?您是否正在寻找带有 -b 参数的 netstat 工具之类的东西?
标签: c# .net windows network-programming
我正在尝试获取进程在 c# 中连接的 IP 地址。有没有简单的方法可以做到这一点?
【问题讨论】:
标签: c# .net windows network-programming
有两种方法可以实现:
InternalGetTcpTableWithOwnerModule / InternalGetUdpTableWithOwnerModule / InternalGetTcp6TableWithOwnerModule / InternalGetUdp6TableWithOwnerModule API。netstat -b 并解析输出。无论哪种方式,您都需要管理员权限,并且两种方式都必然会因不同的 Windows 版本而中断。使用已记录的 API 创建 Windows 驱动程序当然是可行的,但这需要大量工作。
更新:
实际上也有一个记录在案的 API - GetExtendedTcpTable 和 GetExtendedUdpTable。还有一个 article 提供了一个如何从 C# 调用它的示例。
【讨论】: