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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> libnet отправка пакета ? пакет не отправляется  
:(
    Опции темы
bodigard
Дата 23.5.2013, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



доброго времени сток

пробую сформировать и отправить с помощью  libnet-1.1.2.1-2.2.el6.rf.i686 пакет, но tcpdump его не видит ...
ошибок при этом не выдаёт

структура data в коде ниже уже заполнена.
Код

    int  packet_size;
    libnet_t *lnet;
    char errbuf[LIBNET_ERRBUF_SIZE];
    libnet_ptag_t ip = 0, tcp = 0;

    lnet = libnet_init(LIBNET_RAW4, "eth0", errbuf);

    if (lnet == NULL){
        fprintf (stderr, "Error opening context: %s", errbuf);
        return -1;
    }
    packet_size = LIBNET_IPV4_H + LIBNET_TCP_H;

//выводит читабельные IP 
    printf("saddr = %s\ndaddr = %s\n",libnet_addr2name4(data->saddr,LIBNET_DONT_RESOLVE),libnet_addr2name4(data->daddr,LIBNET_DONT_RESOLVE));

    tcp = libnet_build_tcp(data->dport,         //src port
        data->sport,           //dst port
        0,                            //seq
        0,                            //ack
        TH_SYN,                  //flag
        65534,                    //window
        0,                            //csum
        0,                            //urg
        LIBNET_TCP_H,       //header len
        NULL,                       //payload
        0,                             //payload len
        lnet,                         //libnet context
        tcp);                         //ptag
    if(tcp == -1){
        fprintf(stderr, "Error building TCP header: %s\n", libnet_geterror(lnet));
        return -1;
    }

    ip = libnet_build_ipv4(packet_size,         //size
        0,                        //tos
        id,                       //id IP packet
        0,                        //do not fragment
        IPPROTO_TCP,    //protocol
        64,                      //ttl
        0,                        //csum
        data->daddr,      //src addr
        data->saddr,      //dst addr
        NULL,                  //payload
        0,                        //payload len
        lnet,                    //libnet context
        ip);                      //ptag
    if(ip == -1){
        fprintf(stderr, "Error building IP header: %s\n", libnet_geterror(lnet));
        return -1;
    }

    if ((libnet_write (lnet)) == -1){
        fprintf (stderr, "Unable to send packet: %s\n", libnet_geterror (lnet));
        return -1;
    }


подскажите, если не трудно, что не так делаю ?

заранее благодарен за помощь !
PM MAIL   Вверх
feodorv
Дата 12.9.2013, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 10
Всего: 45



Не может быть проблема с контрольными суммами?


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


 




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


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

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