从winsock数据中检测用户?

Posted

技术标签:

【中文标题】从winsock数据中检测用户?【英文标题】:Detecting user from winsock data? 【发布时间】:2010-07-03 16:36:47 【问题描述】:

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

【问题讨论】:

这是在客户端还是服务器端? 【参考方案1】:

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

您可以使用GetExtendedTcpTable 获取有关连接的信息,然后定位创建套接字的进程的PID;然后,您可以根据流程决定使用某些东西...

你为什么要这样做?

【讨论】:

当我使用 LSP 获取应用程序套接字时,需要知道运行正在使用此套接字的应用程序的用户的名称 这是一个略有不同的问题,我希望您可以使用 GetExtendedTCPTable;这将为您提供 PID,然后您可以查询进程以获取所需的信息。【参考方案2】:

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

【讨论】:

以上是关于从winsock数据中检测用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何从主(winsock)向服务器发送消息?

如何使用 Winsock 从数据报的 IP 标头中获取源 IP 地址?

Winsock - 从 C++ 中的 Java 客户端读取整数

如何将 Blowfish 加密添加到 Winsock 数据?

winsock广播用啥协议比较好

winsock2的介绍