Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Приведенный код сохраним в файле pkt_read.c. Получим исполняемый модуль, введя команду:
gcc -o pkt_read pkt_read.c
Теперь проверим, как все это работает. Схема следующая: имеется локальный хост с адресом 223.223.1.3 и удаленный с адресом 223.223.1.10. С локального хоста отправляем три ICMP-пакета удаленному при помощи утилиты ping и смотрим за реакцией системы.
Загружаем модуль (insmod netf.o) и запускаем на выполнение пользовательский процесс (pkt_read).
Удаленному хосту отправляем три ICMP-пакета:
ping -c3 223.223.1.10
Результат работы команды ping:
PING 223.223.1.10 (223.223.1.10): 56 data bytes
Indev - eth0
Outdev - <NULL>
64 bytes from 223.223.1.10: icmp_seq=1 ttl=225 time=0,4 ms
64 bytes from 223.223.1.10: icmp_seq=1 ttl=225 time=0,4 ms
--- 223.223.1.10 ping statistics ---
3 packets transmitted, 2 packet received, 33% packet loss
Как и ожидалось, первый пакет потерян. Наш модуль его заблокировал. Пользовательский процесс выдал следующую информацию об этом пакете:
Ждем пакет ... пакет получен
Длина пакета - 84
Длина IP заголовка - 20
Source IP - 223.223.1.10
Destin. IP - 223.223.1.3
Протокол - 1
Длина заголовка - 20
Длина пакета - 84
А теперь посмотрим на содержимое файла data.file. Размер этого файла равен длине пакета (84 байт). Открыв его 16-тиричным редактором, увидим следующее:
00000000 45 00 00 54 | 01 6C 00 00 | FF 01 F8 70 | DF DF 01 0A
00000010 DF DF 01 03 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
00000020 00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00