如何在.NET中捕获特定套接字的TCP SYNC事件?
我希望能够启动一个方法,该方法将检测是否进行了SFTP数据传输请求,并在完成时执行某些操作,如通知或日志记录。
答案 0 :(得分:0)
假设您要检测打开和关闭的套接字不是您的程序自己负责的,但系统上的其他一些进程正在处理它,最好的方法可能是使用winpcap
图书馆。 winpcap
允许您订阅进出网络接口的所有IP数据包的原始订阅源。您还可以提供一个过滤器,例如“仅在端口22上显示TCP数据包”。您的程序接收原始数据包,以便获得以太网标头,然后是IP标头,接着是TCP标头,然后是数据负载(有效负载将为SFTP加密)。通过分析这些数据包,您将能够检测到连接时的TCP握手,并知道连接的IP和端口,并检测TCP蒸汽何时关闭。
我自己不使用.NET,但我确实在Google上找到了这个用于.NET的winpcap包装器,它允许你使用.NET应用程序中的winpcap
。