LINUX.ORG.RU

что не так в пакете eth + ip + tcp

 ,


0

4

Принимается пакет, ставятся указатели. В tcp неправильные порты показывает. Вот код.

  char packet[8096];
  struct ether_header *eth;
  struct ip *ip;
  struct tcphdr *tcp;
  /* получения порции данных */
  while ( 1 )
  {
    memset ( &packet, 0, sizeof packet );
    read ( sock, packet, sizeof packet );
    eth = ( struct ether_header *) &packet[0];
    ip = ( struct ip *) (packet + sizeof ( struct ether_header ) );
    tcp = ( struct tcphdr *) (packet + sizeof ( struct ether_header ) +
        sizeof ( struct ip *) );

    if ( ip->ip_p == IPPROTO_TCP )
      printf ("%s:%d %s:%d\n",  inet_ntoa ( ip->ip_src), ntohs (tcp->source), 
          inet_ntoa ( ip->ip_dst), ntohs ( tcp->dest )  );

    if ( tcp->dest ==  ntohs (23) ) {
      printf ("!!!!!!!!\n");
    }
  }

потому что ты чудак и не проверил, сколько тебе данных пришло. Это значит раз. Два это то, что длин заголовка указана в заголовке, а не в sizeof

anonymous
()
sizeof ( struct ether_header ) +
        sizeof ( struct ip *)

лол. пшел бы ты книжки почитал, чтоль. Ах да. Тыж RFC читааешь! :D

anonymous
()

У меня сообщения от anonymous блокируются, потому как среди anonymous много чертов развелось, которые моросят, когда пишут. Так что ответы принимаются и видны только от личности.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5
sizeof ( struct ether_header ) +

sizeof ( struct ip *)

лол. пшел бы ты книжки почитал, чтоль. Ах да. Тыж RFC читааешь! :D

Так лучше?

PPP328 ★★★★★
()
Ответ на: комментарий от u0atgKIRznY5

И вообще язабан:

Регистрация При регистрации на сайте запрещается:

использовать длинные имена, состоящие из произвольного набора символов, в том числе: случайные последовательности; кодирования uuencode, base64, binhex; хеши; uuid и т.п;

u0atgKIRznY5

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328
Ответ на: комментарий от PPP328

Я дал приличные еще, а то можно и хеш же взять, был один такой — говорил устал придумывать.

mandala ★★★★★
()
Ответ на: комментарий от mandala

использовать длинные имена, состоящие из произвольного набора символов,

Но ведь это вполне себе осмысленные ники.

Weres ★★★
()
Ответ на: комментарий от Weres

Это чтоб после забана мне не захотелось такое сделать и так и зарегистрироваться:

echo mandala | md5sum
5e4bbdfed8858b90b423c36988a32882

А просто длинные ники ломают верстку. В принципе, если бы подходили к выполнению правил формально — ТС-а бы забанили, но слава богу тут адекваты модерят, а правила вообще пишутся как американские законы — по прецедентам.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от mandala

а правила вообще пишутся как американские законы — по прецедентам

Спасибо, поржал.

Давай, раз уж так, введем в правила поправку: веселые ребята вроде саныча не могут быть забанены до достижения ими 16ка сообщений.

narkoman228
()
Ответ на: комментарий от narkoman228

Куда нам до Саныча. Его, кстати, разбанивали. Но у него не было нормальной почты в учетке — некуда сбрасывать пароль.

mandala ★★★★★
()
Ответ на: комментарий от mandala

Куда нам до Саныча

На этом и заканчивается твоя прецедентная система, спасибо за уделенное время.

narkoman228
()
Ответ на: комментарий от anonymous

хотя, может быть, это его секретарша.

anonymous
()

как писали переполнения буферов так и пишут

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.