我正在用 C# 编写一个应用程序,它挂钩另一个程序的连接函数调用并读取它正在连接的 IP。(我知道它是 IPv4)
目前它钩子、拦截和转发函数调用,我得到了变量,但由于 winsock 中的 connect 是使用 sockaddr* 变量作为第二个参数调用的,我需要将其转换为 sockaddr_in 以获取 IP 地址。(除非有办法从 sa_data 字段中检索 ip,但我找不到相关信息。)
这就是我卡住的地方。我使用 InteropSignatureToolkit(生成的代码:http://pastebin.com/twvGw030)为结构生成了 C# 代码,但我真的不知道如何将 sockaddr 结构转换为 sockaddr_in。在 C++ 中这很容易,但我不知道如何在 C# 中做到这一点。
感谢您花时间阅读本文,希望您能帮助我。:)