【发布时间】:2012-07-28 18:02:52
【问题描述】:
我正在用 C# 编写一个应用程序,它挂钩另一个程序的连接函数调用并读取它正在连接的 IP。 (我知道是 IPv4)
目前它钩子、拦截和转发函数调用,我得到了变量,但由于 winsock 中的 connect 是用 sockaddr* 变量作为第二个参数调用的,所以我需要将其转换为 sockaddr_in 以获取 IP 地址。 (除非有办法从 sa_data 字段中检索 ip,我找不到相关信息。)
这就是我卡住的地方。我使用 InteropSignatureToolkit 为结构生成了 C# 代码(生成的代码:http://pastebin.com/twvGw030),但我真的不知道如何将 sockaddr 结构转换为 sockaddr_in。在 C++ 中这很容易,但我不知道如何在 C# 中做到这一点。
感谢您抽出宝贵时间阅读本文,希望您能帮助我。 :)
【问题讨论】:
-
另一个站点上的代码可以独立地从 stackoverflow 更改,从而降低这篇文章的用处。