从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 从数据报的 IP 标头中获取源 IP 地址?
Winsock - 从 C++ 中的 Java 客户端读取整数