如何使用GetExtendedTcpTable在Windows中获取TCP连接的原始PID?

时间:2016-11-03 14:18:40

标签: windows wfp

我试图让进程的PID从服务器内部与本地http服务器建立本地连接。例如:Chrome-> HTTPREQ - >的HttpServer:8080。因此,从httpServer我可以知道哪个进程正在进行连接,在本例中为Chrome。

我可以使用带有TCP_TABLE_OWNER_MODULE_ALL的GetExtendedTcpTable查询所有tcp连接,然后检查每一行并使用row-> dwOwningPid

8080 == ntohs(row->dwRemotePort) &&
row->dwLocalAddr == inet_addr("127.0.0.1") && 
row->dwRemoteAddr == inet_addr("127.0.0.1")

问题似乎是因为我安装了一个拦截我流量的AV,我得到AV的PID而不是启动连接的原始应用程序。

chrome -> av wfp -> httpserver

如果不向AV添加排除项,有没有办法可以检索启动请求的原始进程的PID,而不是像AV网络过滤器这样的转发器?

提前致谢。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

Chrome - > AV - > WFP

如果AV(Xport) - > (Yport)WFP

一般:

Chrome(Xport -1) - > WFP。

这对我有用。