Перехват событий TCP SYNC - PullRequest
       2

Перехват событий TCP SYNC

0 голосов
/ 11 ноября 2011

Как я могу перехватить события TCP SYNC для определенного сокета в .NET?

Я хочу иметь возможность запустить метод, который будет определять, сделан ли запрос на передачу данных SFTP, и по завершении выполнить какое-либо действие, такое как уведомление или регистрация.

1 Ответ

0 голосов
/ 11 ноября 2011

Предполагая, что сокет, для которого вы хотите обнаружить открытие и закрытие, не является тем, за что ваша программа отвечает за себя, а какой-то другой процесс в системе обрабатывает его, лучшим способом может быть использование библиотеки winpcap. winpcap позволяет подписаться на необработанный поток всех IP-пакетов, входящих и выходящих из сетевых интерфейсов. Вы можете также предоставить фильтр, такой как «Показывать только TCP-пакеты на порту 22». Ваша программа получает необработанные пакеты, поэтому вы получаете заголовок Ethernet, затем заголовок IP, затем заголовок TCP, а затем полезные данные (полезные данные будут зашифрованы для SFTP). Анализируя эти пакеты, вы сможете обнаружить TCP-рукопожатие при подключении, узнать IP-адрес и порт, который подключается, и определить, когда TCP-порт закрыт.

Я не использую .NET сам, но я нашел эту оболочку winpcap для .NET в Google, которая должна позволить вам использовать winpcap из вашего приложения .NET.

Оболочка WinPCAP.NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...