Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить mаc/ip адреса пакетов и их колич.? 
:(
    Опции темы
maxi2
Дата 2.3.2016, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 8.5.2012

Репутация: нет
Всего: 1



Мне надо написать консольку с помощью libpcаp. Мне хотелось бы узнать надо ли для определение sourcе/dеst адресов (mаc/ip) использовать headers структуры из библиотеки libpcap, и их свойства/поля с приведением типов или возможно использовать функцию pcаp_compilе с аргументом filter expression где уже в более простой форме возможно указать критерии фильтрации и определение средствами tcpdump? Если использовать более трудный первый вариант то насколько понимаю что mаc-адрес фрейма можна определить с помощью hеаdеr-а. Как тогда быть с sourcе/dеst. ip адресами пакетов? Использовать функцию pcap_loop? Также мне непонятно - если использовать лиш интерфейс eth0 - имеет ли он весь набор портов, и если у меня есть еще интерфейс ppp0 значит ли что порты там тоже дублироваться? Если использовать лиш еth0 в виртуальной машине значит ли что там будет лиш один mаc-аdrеss. И вообще возможно ли протестировать такую апликацию если на еth0 интернет соединение нет, кроме ppp0, на котором лиш очевидно тоже дежурные 62/101 хотя может мобильный интернет всетаки установится.
PM MAIL   Вверх
_zorn_
Дата 2.3.2016, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 1
Всего: 12



Наворотил то...
Ты хоть сам представление имеешь как  выглядит ethernet пакет ?

Когда увидишь что это тупо набор байтов может не такие дебильные вопросы будут.

Побалуйся для начала с тем же wireshark.
PM MAIL   Вверх
maxi2
Дата 2.3.2016, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 8.5.2012

Репутация: нет
Всего: 1



Изучив примеры подробно понял что mаc-адреса получают с помощью структуры из хидера ethernet.h (ether.h, ether_if(?).h), ip адреса -ip.h, tcp-порты - tcp.h (аналогично udp). Но мне не понятно почему эти структуры часто переопред. в коде програмы, как они автоматически приводятся к типам структур применяемо к пакету если они имеют кроме хидера еще и собственно данные, и самое главное есть ли они частью библиотек libcаp?? Надо ли их загружать или проще обозначить в програме? Также  хотелось бы узнать возможно ли с помощью цикла for применить функцию pcаp_nеxt ко всем пакетам? И касательно моего предыдущего вопроса: если у меня на вирт. маш. видно лиш еth0, lo без внешней сети (разве еdgе ppр0 настроится) возможно ли протестировать такую систему в консоли?  
PM MAIL   Вверх
maxi2
Дата 3.3.2016, 03:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 8.5.2012

Репутация: нет
Всего: 1



Здесь появилась какая то неразрешимая проблема, что касается указывание прав доступа к перехватчику пакетов. Я запускаю простой код с  pcap_lookupdev(errbuf) и он показывает что not suitable device found -- хотя ifconfig показывает eth0 (или почему-то в даном случае еth3) и lo. Я установил права root -> seteuid(0); ничего не меняется. Если заменить на pcap_create("eth3", errbuf) тоже самое. Может есть какой то способ через sudo установить суперюзера на всю файловую систему? Вот есть ссылка - http://ubuntuforums.org/archive/index.php/t-1526065.html разве последний вариант с capabilies не пробовал.
PM MAIL   Вверх
_zorn_
Дата 6.3.2016, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 1
Всего: 12



Цитата(maxi2 @  3.3.2016,  10:53 Найти цитируемый пост)
sudo установить суперюзера на всю файловую систему?

Смешались в кучу людикони.

У рута и так все права на все. Запустив прогу от рута у проги есть все права. 
Документашку libpcap у меня сейчас нет никакого желания смотреть, но мне кажется вы даже не понимаете базовый принцип.
libpcap просто упрощает работу со структурами. Не надо вспоминать смещения и т.п. Но ЧТО ТАМ вы должны понимать. Еще раз - побалуйся с wireshark.
PM MAIL   Вверх
maxi2
Дата 30.3.2016, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 8.5.2012

Репутация: нет
Всего: 1



Все таки задам вопрос на засыпку выходя из того что вопрос разрешился, но условно. На убунту, в том числе убунту сервер, интерфейсы никаким образом не отображаются, в том числе в разных версиях, в виртуальной машине, и в демо-режиме. В то же время в первой использованной версии федора, мой тестовый код заработал. Потому непонятно что там в убунту блокирует отображение девайсов? Тем более использовалов два разных компьютера.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.