Приложение, над которым я работаю, должно отслеживать подключение другого приложения, то есть проверять, что другое приложение генерирует и получает IP-трафик.
У нас нет API для другого приложения, поэтому мы отслеживаем IP-трафик через WinSock.Мы делаем это, определяя сокет RAW IP и устанавливая для элемента управления IO что-то эквивалентное -
int opt = RCVALL_ON;
WSAIoctl((socket) s, SIO_RCV_ALL, &opt, sizeof(opt), NULL, ...); //The rest is "empty"
Затем мы асинхронно читаем данные из сокета и просматриваем заголовок IP, чтобы увидеть, что трафик принадлежит отслеживаемомуapplication.
Возникают два вопроса -
- Есть ли другой, лучший способ для отслеживания трафика IP?В частности, нам нужно знать, какие хосты отправляли данные на машину и на какие хосты были отправлены данные, и когда.
- При использовании описанного выше метода данные «перехватываются» из целевого приложения?Или целевое приложение получает его в свой сокет без перерыва?
Спасибо,
Asaf