Пример: определяем, включены ли контрольные суммы UDP

Пример: определяем, включены ли контрольные суммы UDP

Теперь мы приведем простой пример использования функции sysctl с протоколами Интернета для проверки, включены ли контрольные суммы UDP. Некоторые приложения UDP (например, BIND) проверяют при запуске, включены ли контрольные суммы UDP, и если нет, пытаются включить их. Для того чтобы включить подобное свойство, требуются права привилегированного пользователя, но мы сейчас просто проверим, включено это свойство или нет. В листинге 18.7 представлена наша программа.

Листинг 18.7. Проверка включения контрольных сумм

//route/checkudpsum.c

 1 #include "unproute.h"

 2 #include <netinet/udp.h>

 3 #include <netinet/ip_var.h>

 4 #include <netinet/udp_var.h> /* для констант UDPCTL_xxx */

 5 int

 6 main(int argc, char **argv)

 7 {

 8  int mib[4], val;

 9  size_t len;

10  mib[0] = CTL_NET;

11  mib[1] = AF_INET;

12  mib[2] = IPPROTO_UDP;

13  mib[3] = UDPCTL_CHECKSUM;

14  len = sizeof(val);

15  Sysctl(mib, 4, &val, &len, NULL, 0);

16  printf("udp checksum flag: %d ", val);

17  exit(0);

18 }

Включение системных заголовков

2-4 Следует включить заголовочный файл <netinet/udp_var.h>, чтобы получить определение констант UDP функции sysctl. Для него требуются два других заголовка.

Вызов функции sysctl

10-16 Мы размещаем в памяти массив целых чисел с четырьмя элементами и храним константы, соответствующие иерархии, показанной на рис. 18.3. Поскольку мы только получаем переменную и не присваиваем ей значение, аргумент newp функции sysctl мы задаем как пустой указатель, и поэтому аргумент newp этой функции имеет нулевое значение, oldp указывает на нашу целочисленную переменную, в которую сохраняется результат, a oldenp указывает на переменную типа «значение- результат», хранящую размер этого целого числа. Мы выводим либо 0 (отключено), либо 1 (включено).

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Определяем неисправность по количеству звуковых сигналов

Из книги Очень хороший самоучитель пользователя компьютером. Как самому устранить 90% неисправностей в компьютере и увеличить его возможности автора Колисниченко Денис Николаевич

Определяем неисправность по количеству звуковых сигналов Как уже было отмечено, писк при запуске – это явный признак аппаратной ошибки. Количество сигналов и их последовательность зависит от базовой системы ввода/вывода (BIOS, Basic Input/Output System). Обычно версия и


19.2.4.6. Предоставляйте контрольные суммы пакетов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

19.2.4.6. Предоставляйте контрольные суммы пакетов Сопровождайте бинарные файлы (архивы, RPM и др.) контрольными суммами. Они позволяют пользователям проверить, не повреждены ли файлы при загрузке и не содержат ли они код "троянского коня".Хотя существует несколько команд,


Контрольные вопросы

Из книги Основы информатики: Учебник для вузов автора Малинина Лариса Александровна

Контрольные вопросы 1. Что изучает информатика?2. Как развивались способы сбора, хранения и передачи информации?3. Какова структура современной информатики?4. Что такое информация?5. Какие функции выполняет информация?6. Дайте характеристику основным информационным


Контрольные вопросы

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Контрольные вопросы 1. Какие поколения развития ЭВМ различают? Дайте их характеристику.2. Каковы основные принципы работы машины фон Неймана?3. Как осуществляется функционирование ЭВМ?4. Какие устройства относятся к основным блокам персонального


Контрольные вопросы

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Контрольные вопросы 1. Что такое алгоритм? Приведите пример.2. Какими свойствами обладает алгоритм?3. Какие способы используются для описания алгоритма?4. Какие алгоритмы различают? Приведите примеры.5. Что такое язык программирования?6. В чем отличие языков


Контрольные вопросы

Из книги Scrum и XP: заметки с передовой автора Книберг Хенрик

Контрольные вопросы 1. Что такое модель?2. Для чего используются модели?3. Что такое моделирование?4. Как классифицируются модели?5. Какие этапы проходит процесс создания модели?6. Какие виды моделирования различают?7. Какие модели характеризуют информационное


19.2.4.6. Предоставляйте контрольные суммы пакетов

Из книги Справочник по PHP автора

19.2.4.6. Предоставляйте контрольные суммы пакетов Сопровождайте бинарные файлы (архивы, RPM и др.) контрольными суммами. Они позволяют пользователям проверить, не повреждены ли файлы при загрузке и не содержат ли они код "троянского коня".Хотя существует несколько команд,


6.13.6 Заголовок контрольной суммы

Из книги C++. Сборник рецептов автора Диггинс Кристофер

6.13.6 Заголовок контрольной суммы Контрольная сумма (checksum) находится в 16-разрядном поле и вычисляется по значению остальных полей заголовка IP как сумма всех дополнений до единицы 16-разрядных слов заголовка. До вычисления поле контрольной суммы содержит 0. Контрольная


Определяем свою приёмочную шкалу

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Определяем свою приёмочную шкалу В дополнении к обычному product backlog, product owner определяет приёмочную шкалу, которая представляет собой ни что иное, как простое разбиение всех историй product backlog’а на группы в зависимости от их уровня важности в контексте контрактных


Строковые суммы и хеш-функции

Из книги Человеческий фактор. Успешные проекты и команды автора Листер Тимоти

Строковые суммы и хеш-функции strlenВозвращает длину строки.Синтаксис:int strlen(string str)Возвращает просто длину строки, т.е., сколько символов содержится в str.Строка может содержать любые символы, в том числе и с нулевым кодом. Функция strlen() будет правильно работать и с такими


11.3. Вычисление суммы и среднего значения элементов контейнера

Из книги автора

11.3. Вычисление суммы и среднего значения элементов контейнера ПроблемаТребуется вычислить сумму и среднее значение чисел, содержащихся в контейнере.РешениеДля расчета суммы можно использовать функцию accumulate из заголовочного файла <numeric> и затем разделить ее на


Глава 3. Увеличение суммы среднего чека

Из книги автора

Глава 3. Увеличение суммы среднего чека Второй способ, который позволяет получить дополнительную прибыль от интернет-магазина, – внедрение технологии