#ifndef NET_H #define NET_H #define ETH_HEADER_LEN 14//длина заголовка ethernet - 14 байт, начиная с 0 байта данных #define ETHTYPE_ARP_H_V 0x08// значение первого байта поля "Тип" - 8 #define ETHTYPE_ARP_L_V 0x06// и значение второго байта поля "Тип"-6 - ARP #define ETHTYPE_IP_H_V 0x08// значение первого байта поля "Тип" - 8 #define ETHTYPE_IP_L_V 0x00//и значение второго байта поля "Тип"-0 - IP #define ETH_TYPE_H_P 12//поле "тип" начинается с 12 байта данных #define ETH_TYPE_L_P 13// второй бит поля "тип" -13 байт данных #define ETH_DST_MAC 0// поле "мас-адрес получателя" начинается с 0 байта данных #define ETH_SRC_MAC 6// поле "мас-адрес источника" начинается с 6 байта данных #define ETH_ARP_OPCODE_REPLY_H_V 0x00// значение старшего байта поля "кода операции" 0 - arp #define ETH_ARP_OPCODE_REPLY_L_V 0x02//и значение младшего байта поля "кода операции" 2 - arp - ответ #define ETHTYPE_ARP_L_V 0x06// значение второго байта поля "Тип"-6 - ARP #define ETH_ARP_DST_IP_P 0x26//поле "IP-адрес получателя" начинается с 38 байта #define ETH_ARP_OPCODE_H_P 0x14//поле "код операции" начинается с 20 байта #define ETH_ARP_OPCODE_L_P 0x15// 2-й байт поля "код операции" - 21 байт #define ETH_ARP_SRC_MAC_P 0x16//поле "MAC-адрес источника" начинается с 22 байта #define ETH_ARP_SRC_IP_P 0x1c//поле "IP-адрес источника" начинается с 28 байта #define ETH_ARP_DST_MAC_P 0x20//поле "MAC-адрес получателя" начинается с 32 байта #define ETH_ARP_DST_IP_P 0x26//поле "IP-адрес получателя" начинается с 38 байта #define IP_HEADER_LEN 20 #define IP_SRC_P 0x1a//ip-адрес источника начинается с 26-го байта данных #define IP_DST_P 0x1e//ip-адрес получателя начинается с 30-го байта данных #define IP_HEADER_LEN_VER_P 0xe #define IP_CHECKSUM_P 0x18//поле "контрольная сумма" начинается с 24-го байта данных #define IP_TTL_P 0x16//22-й бит данных #define IP_FLAGS_P 0x14// поле "флаги" начинается с 20-го байта данных #define IP_P 0xe #define IP_TOTLEN_H_P 0x10//поле "общая длина" начинается с 16-го байта данных #define IP_TOTLEN_L_P 0x11//поле "общая длина" - 17-й байт данных #define IP_PROTO_P 0x17 //поле "протокол" начинается с 23-го байта данных #define IP_PROTO_ICMP_V 1// значение поля "протокол" равно 1 - icmp протокол #define IP_PROTO_TCP_V 6// значение поля "протокол" равно 6 - tcp протокол #define IP_PROTO_UDP_V 17// значение поля "протокол" равно 17 - udp протокол #define ICMP_TYPE_ECHOREPLY_V 0//значение поля "тип" равно 0 - пинг-ответ #define ICMP_TYPE_ECHOREQUEST_V 8//значение поля "тип" равно 8 - пинг-запрос #define ICMP_TYPE_P 0x22// поле "тип" начинается с 34 байта данных #define ICMP_CHECKSUM_P 0x24//поле "контрольная сумма" начинается с 36 байта данных #endif