![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
![]()
Мне нужно написать простой анализатор пакетов, который снифает трафик, слегка анализирует пакеты и решает, отбрасывать пакет или нет. Написал такую программу:
Код:
Я так понимаю, проблема в размере структур, которые я использую в вызове bind? Как решить проблему? |
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
![]()
Проблему с биндом решил. Не хватало закрывающей скобки.
Остались две задачи: 1. Добраться до данных в пакете и анализировать их 2. Переделать под IPv6 Чтобы получить данные, надо просто перейти по указателю, а размер этих данных равен IPHeader.length - sizeof(tagIPHeader)? Или нет? |
![]() |
![]() |
![]() |
#3 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() Цитата:
Цитата:
Код:
|
||
![]() |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
![]()
Это решил.
Дописал такую процедуру: Код:
Еще хочу понять, какова структура данных, которые лежат в буфере после вызова recv. Там сырые данные, то есть IP-заголовок и прочая ботва, или что-то другое? |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
А что, это работает?! В документации прямым текстом написано, что нельзя передавать IPPROTO_IP...
Ref: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx |
![]() |
![]() |
![]() |
#6 | |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
![]() Цитата:
Остается вопрос, как добраться до данных. |
|
![]() |
![]() |
![]() |
#7 |
Заблокирован
Регистрация: 11.11.2016
Сообщений: 261
|
![]()
У меня в строке printf("data = %s\n", *hdr->data); или printf("data = %s\n", hdr->data); обращение к неверной памяти.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 17.02.2013
Сообщений: 26
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что то не дает забиндить порты | Abuhamed | Windows | 2 | 03.10.2013 00:14 |
Забиндить ImageBrush ImageSource | coNsept | Общие вопросы .NET | 1 | 28.11.2012 05:00 |
Сокет останавливает другой сокет. | batand | C/C++ Сетевое программирование | 2 | 09.10.2012 11:58 |
Вопрос по WinSock: "сокет=сокет." | Ksardas13 | C/C++ Сетевое программирование | 2 | 27.11.2011 16:12 |
Как забиндить все ПОРТЫ? | KaneKRY | Работа с сетью в Delphi | 0 | 02.04.2010 14:45 |