其实我有三个问题:
1-根据Nazar Grynko回答,是否只拦截三个功能(发送,接收和连接)将帮助我预测机器中的所有数据包?
2-如果我挂钩了这三个函数,如何从P / Invoked本机函数中获取指向sockaddr结构的IntPtr?
3-发送,并且recv没有sockaddr,那么如何找出地址呢?
提前谢谢。
答案 0 :(得分:0)
您描述的功能是POSIX
标准的一部分。这意味着当您在Windows上使用这些功能时,您实际上正在调用最终转换为system call的包装器。您可以在不使用此功能的情况下发送数据包(例如,使用Windows API)。
请参阅第一个答案。这对你没有帮助。您还必须为所有流程提供挂钩。
您描述的功能使用的file descriptor是POSIX
构造,并且是在其他系统上模拟的用户模式。
要检查您的流量,您必须使用能够为您完成此操作的驱动程序。您可能希望查看Pcap.Net这是一个完全针对您的问题的C#项目,并提供必要的驱动程序和API。