2010-07-03 22 views
2

例如,我使用名为Admin的帐户下的winsock创建套接字。有没有可能检测哪个用户创建了该套接字?我想写在我的程序中:这个套接字是由“Admin”创建的。我正在使用c + +从winsock数据中检测用户?

+0

这是在客户端还是服务器端? – 2010-07-03 17:06:21

回答

0

netstat -o应该给你创建套接字的进程ID;从那里,你可以找到进程的所有者。如果一切都失败了,你可以在新进程中产生netstat并解析输出。

1

套接字不是安全对象(请参阅here),因此不能有与其关联的安全描述符,因此无法知道“创建套接字”的用户帐户。

您可以使用GetExtendedTcpTable获取有关连接的信息,然后找到创建套接字的进程的PID;你可以决定使用基于过程的东西...

为什么你要这样做呢?

+0

当我得到使用LSP的应用套接字时,需要知道运行使用此套接字的应用程序的用户的名称 – Roar 2010-07-03 18:02:04

+0

这是一个微妙不同的问题,我可以使用GetExtendedTCPTable;这将给你的PID,那么你可以查询过程中所需的信息。 – 2010-07-03 18:57:14