C#如何从sockaddr获取IP地址

时间:2015-09-15 07:48:52

标签: sockets hook pinvoke ip-address intptr

我使用connect和C#挂钩deviare函数。问题是我需要从sockaddr获取IP地址(这是connect函数中的第二个参数)。

我检查了答案: C# sockaddr to sockaddr_in  &安培; https://stackoverflow.com/a/17430748/3312744

我试着用它们。但我面临从连接功能获取IntPtr的问题。 我尝试了以下方法:

IParam pm = callInfo.Params.get_Item(1);

IntPtr sock = new IntPtr(pm.Value) ;

IPAddress ip_ader = ConvertSockAddrPtrToIPAddress(sock);

ConvertSockAddrPtrToIPAddress是此答案中使用的方法:https://stackoverflow.com/a/17430748/3312744但始终抛出异常。

异常是(运行时遇到致命错误。错误地址为0x531a0858,位于线程0x724。错误代码为0xc0000005。此错误可能是CLR中的错误或不安全或非错误用户代码的可验证部分。此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈。)

抱歉英语不好。提前谢谢

0 个答案:

没有答案