如何检查给定进程创建了哪些与 Internet 的连接
Posted
技术标签:
【中文标题】如何检查给定进程创建了哪些与 Internet 的连接【英文标题】:How to check what connections a given process has created to the internet 【发布时间】:2009-08-13 17:02:56 【问题描述】:我的意思是,如果您使用 NetLimiter 之类的工具,它们会让您知道连接到 IP1、IP2 等的给定进程。我正在为我的应用程序使用数据包嗅探,但我只需要对一个应用程序进行数据包嗅探,所以我想知道该应用程序连接到哪些 IP 地址。有什么简单的方法可以做到这一点?我正在使用 WinPCap 的包装器。
编辑:谷歌搜索后,我了解了 -netstat -bno 命令。它似乎做我想做的事,但我想知道是否有任何特定的功能可以做到这一点。否则,我就用这个。
edit2: w i n d o w s !
【问题讨论】:
我不确定你在问什么。你说 netstat -bno 是你想要的,但要求一个特定的功能来做到这一点。你想要一个 c#/c++/something .net 函数吗?即您是通过编程方式执行此操作还是想要像 Netlimiter 这样的工具? 【参考方案1】:按照您的建议,使用 windows 等效项;
netstat -abnot
【讨论】:
【参考方案2】:看看GetExtendedTcpTable(),它是相关的列出函数。 C 或 C++,如果您喜欢 VB,我想 VB 等效项具有相似的名称。
http://msdn.microsoft.com/en-us/library/aa365928%28VS.85%29.aspx
【讨论】:
【参考方案3】:如果您使用的是 Linux,您可以说“netstat -nap”,它会列出打开的网络和 UNIX 域套接字。
您还可以从 /proc/net/tcp 和 /proc/net/udp 读取此类信息。此页面http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html 应该可以帮助您入门。
【讨论】:
谢谢。但这适用于 Windows :( 哦,对不起,我还没看完就开始回答了。以上是关于如何检查给定进程创建了哪些与 Internet 的连接的主要内容,如果未能解决你的问题,请参考以下文章
如果给定文件或目录被锁定(由任何进程使用),如何检查命令行?