Сетевые технологии. Баканов В.М. - 7 стр.

UptoLike

Составители: 

- 7 -
fflush(stdout);
for (done = 0; !done; )
{
n = read(s, buff, sizeof(buff)); /* cчитываем перехваченный трафик в буфер buff */
if ( n!=-1 )
write(STDOUT_FILENO, buff, n);
}
ifr.ifr_flags &= ~IFF_PROMISC; /* снятие режима перехвата всех пакетов */
if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0)
{
perror("ioctl(SIOCGIFFLAGS)");
return 1;
}
close(s);
printf("Finished\n");
return 0;
} /* конец MAIN */
Один из примеров выдачи (определенным образом скомпонованной) ин-
формации сниффером приведен ниже; распечатка содержимого перехвачен-
ного пакета (датаграммы) состоит из разделенных двоеточием трех колонок:
формат пакета-носителя, имя поля, содержимое поля в десятичном и восьме-
ричном представлении. Этот пакет содержит 14-байтовый заголовок
EtherNet, 20-байтовый IP-заголовок, 20-байтовый TCP-заголовок, заголовок
HTTP, оканчивающийся
двумя подряд CRLF (0D 0A 0D 0A) и далее собст-
венно данные прикладного уровня (WEB-трафик по протоколу HTTP версии
1.1, [4]):
ETHER: Destination address: 0000BA5EBA11
ETHER: Source address: 00A0C9B05EBD
ETHER: Frame Length: 1514 (0x05EA)
ETHER: Ethernet Type: 0x0800 (IP)
IP: Version = 4 (0x4)
IP: Header Length = 20 (0x14)
IP: Service Type = 0 (0x0)
IP: Precedence = Routine
IP:...0.... = Normal Delay
IP:....0... = Normal Throughput
IP:.....0.. = Normal Reliability
IP: Total Length = 1500 (0x5DC)
IP: Identification = 7652 (0x1DE4)
IP: Flags Summary = 2 (0x2)
IP:.......0 = Last fragment in datagram
IP:......1. = Cannot fragment datagram
IP: Fragment Offset = 0 (0x0) bytes
IP: Time to Live = 127 (0x7F)
IP: Protocol = TCP — Transmission Control
 fflush(stdout);
 for (done = 0; !done; )
 {
   n = read(s, buff, sizeof(buff)); /* cчитываем перехваченный трафик в буфер buff */
   if ( n!=-1 )
     write(STDOUT_FILENO, buff, n);
 }
 ifr.ifr_flags &= ~IFF_PROMISC; /* снятие режима перехвата всех пакетов */
 if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0)
 {
   perror("ioctl(SIOCGIFFLAGS)");
   return 1;
 }
 close(s);
 printf("Finished\n");
 return 0;
} /* конец MAIN */

   Один из примеров выдачи (определенным образом скомпонованной) ин-
формации сниффером приведен ниже; распечатка содержимого перехвачен-
ного пакета (датаграммы) состоит из разделенных двоеточием трех колонок:
формат пакета-носителя, имя поля, содержимое поля в десятичном и восьме-
ричном представлении. Этот пакет содержит 14-байтовый заголовок
EtherNet, 20-байтовый IP-заголовок, 20-байтовый TCP-заголовок, заголовок
HTTP, оканчивающийся двумя подряд CRLF (0D 0A 0D 0A) и далее собст-
венно данные прикладного уровня (WEB-трафик по протоколу HTTP версии
1.1, [4]):
ETHER: Destination address: 0000BA5EBA11
ETHER: Source address: 00A0C9B05EBD
ETHER: Frame Length: 1514 (0x05EA)
ETHER: Ethernet Type: 0x0800 (IP)
  IP: Version = 4 (0x4)
  IP: Header Length = 20 (0x14)
  IP: Service Type = 0 (0x0)
  IP: Precedence = Routine
  IP:...0.... = Normal Delay
  IP:....0... = Normal Throughput
  IP:.....0.. = Normal Reliability
  IP: Total Length = 1500 (0x5DC)
  IP: Identification = 7652 (0x1DE4)
  IP: Flags Summary = 2 (0x2)
  IP:.......0 = Last fragment in datagram
  IP:......1. = Cannot fragment datagram
  IP: Fragment Offset = 0 (0x0) bytes
  IP: Time to Live = 127 (0x7F)
  IP: Protocol = TCP — Transmission Control


                                         -7-