собрал программу анализатор сетевого трафика с этого сайта
немного доработал,вывел на экран содержимое пакетов.
ip , tcp все есть
а заголовка eth нет вообще.
подскажите как просмотреть mac адреса?
ос alt linux 2.2
>собрал программу анализатор сетевого трафика с этого сайта
>немного доработал,вывел на экран содержимое пакетов.
>ip , tcp все есть
>а заголовка eth нет вообще.
>подскажите как просмотреть mac адреса?
>ос alt linux 2.2какой точно анализатор ? их тут чуть меньше, чем пользователей...
>>собрал программу анализатор сетевого трафика с этого сайта
>>немного доработал,вывел на экран содержимое пакетов.
>>ip , tcp все есть
>>а заголовка eth нет вообще.
>>подскажите как просмотреть mac адреса?
>>ос alt linux 2.2
>
>какой точно анализатор ? их тут чуть меньше, чем пользователей...вот ссылка http://www.opennet.me/base/dev/traffic_analyze.txt.html
мне кажется что где то стоит запрет на передачу eth заголовка.
пробывал ф-ю read тоже самое.
help.
>>>собрал программу анализатор сетевого трафика с этого сайта
>>>немного доработал,вывел на экран содержимое пакетов.
>>>ip , tcp все есть
>>>а заголовка eth нет вообще.
>>>подскажите как просмотреть mac адреса?
>>>ос alt linux 2.2
>>
>>какой точно анализатор ? их тут чуть меньше, чем пользователей...
>
>вот ссылка http://www.opennet.me/base/dev/traffic_analyze.txt.html
>мне кажется что где то стоит запрет на передачу eth заголовка.
>пробывал ф-ю read тоже самое.
>help.
При использовании пакетных сокетов,помнится, надо еще и level задавать ;-)
то есть по умолчанию link-layer заголовки не передаются пользователю, что в статье не указанно (кстати в ман`ах это есть точно)
Вообще приведенная статья - сугубо учебная, приведенна для ознакомления с проблемой и возбуждения интереса так сказать ;-)
Для "боевого" применения все-же лучше использовать библиотеку pcap (о чем прямо в первой строке и сказанно) + в приведенной программе есть некоторые недочеты (то что сразу в глаза бросается):
1) по ethernet ходит не только ip
2) для вычисления смещения TCP надо опираться на поле размера заголовка IP, а не на размер структуры
>При использовании пакетных сокетов,помнится, надо еще и level задавать ;-)
>то есть по умолчанию link-layer заголовки не передаются пользователю, что в статье
>не указанно (кстати в ман`ах это есть точно)А можно уточнить - что такое level и link-layer?
>Вообще приведенная статья - сугубо учебная, приведенна для ознакомления с проблемой и
>возбуждения интереса так сказать ;-)Всё правильно.
>Для "боевого" применения все-же лучше использовать библиотеку pcap (о чем прямо в
>первой строке и сказанно) + в приведенной программе есть некоторые недочеты
>(то что сразу в глаза бросается):
>1) по ethernet ходит не только ipСогласен.
>2) для вычисления смещения TCP надо опираться на поле размера заголовка IP,
>а не на размер структурыТак на размер загловка и опираемся:
memcpy((void *)&tcp, buff + ETH_HLEN + ip.ihl * 4, sizeof(struct tcphdr));
ip.ihl * 4 - это и будет размер IP-заголовка, и в сумме с ETH_HLEN - смешение к TCP заголовку.
Или Вы о другом?
>собрал программу анализатор сетевого трафика с этого сайта
>немного доработал,вывел на экран содержимое пакетов.
>ip , tcp все есть
>а заголовка eth нет вообще.
>подскажите как просмотреть mac адреса?
>ос alt linux 2.2А что именно Вы доработали?
Программа прекрасно оображает и MAC-заголовок.
Если хотите, я Вам исходники вышлю, Вы сможете сравнить со своими.Ещё небольшое замечание.
Ethernet-заголовок прогамма выкинет, если тип пакетного сокета будет задан как SOCK_DGRAM. Если же тип == SOCK_RAW, то пакет целиком, со всеми заголовками, попадет на обработку. Об этом в статье сказано, см. п.3.
>>собрал программу анализатор сетевого трафика с этого сайта
>>немного доработал,вывел на экран содержимое пакетов.
>>ip , tcp все есть
>>а заголовка eth нет вообще.
>>подскажите как просмотреть mac адреса?
>>ос alt linux 2.2
>
>А что именно Вы доработали?
>Программа прекрасно оображает и MAC-заголовок.
>Если хотите, я Вам исходники вышлю, Вы сможете сравнить со своими.
>
>Ещё небольшое замечание.
>Ethernet-заголовок прогамма выкинет, если тип пакетного сокета будет задан как SOCK_DGRAM. Если
>же тип == SOCK_RAW, то пакет целиком, со всеми заголовками, попадет
>на обработку. Об этом в статье сказано, см. п.3.вот установил libpcap.
mac адресов так и не увидел,
подскажите где копать.
может у меня ядро криво настроено?
исходник шлите сравню обязательно anogin@bk.ru
//gcc cap.c -o cap /usr/lib/libpcap.a#include <pcap.h>
#include <stdio.h>int main(int argc, char **argv)
{
int i;
pcap_t *handle; /* Session handle */
char errbuf[PCAP_ERRBUF_SIZE]; /* Error string */
struct pcap_pkthdr header; /* The header that pcap gives us */
const u_char *packet;/* The actual packet */if (argc < 2)
{fprintf(stderr, "Usage: %s <interface>\n", argv[0]); return -1;}
if ( (handle = pcap_open_live(argv[1], BUFSIZ, 1, 500, errbuf)) == NULL)
printf("pcap_open_live: %s", errbuf);
for(;;)
{
printf("\n---------------------------\n");
while ( (packet = (char *) pcap_next(handle,&header)) == NULL);for( i=0; i< header.len; i++) {
printf("x ", (int)*(packet+i));
if (!((i+1))) printf("\n");
};
printf("\nPacked length [%d]\n", header.len);
}
pcap_close(handle);
return(0);
}
а может быть такое что пакеты приходят и уходят без заголовков
>а может быть такое что пакеты приходят и уходят без заголовков????
>а может быть такое что пакеты приходят и уходят без заголовков
Это мутантство. Нет, такого быть не может. Они бы не знали куда им идти даже если их насильно такими формировать и в сыром виде слать.