Вход/Регистрация
UNIX: разработка сетевых приложений
вернуться

Стивенс Уильям Ричард

Шрифт:

Обратите внимание, что невозможно с помощью функции

ioctl
перечислить все записи кэша ARP. Большинство версий команды
arp
при использовании флага
– a
(перечисление всех записей кэша ARP) считывают память ядра (
/dev/kmem
), чтобы получить текущее содержимое кэша ARP. Мы увидим более простой (и предпочтительный) способ, основанный на применении функции
sysctl
, описанной в разделе 18.4.

Пример: вывод аппаратного адреса узла

Теперь мы используем нашу функцию

my_addrs
для того, чтобы возвратить все IP-адреса узла. Затем для каждого IP-адреса мы делаем вызов
SIOCGARP
функции
ioctl
, чтобы получить и вывести аппаратные адреса. Наша программа показана в листинге 17.10.

Листинг 17.10. Вывод аппаратного адреса узла

//ioctl/prmac.c

1 #include "unpifi.h"

2 #include <net/if_arp.h>

3 int

4 main(int argc, char **argv)

5 {

6 int sockfd;

7 struct ifi_info *ifi;

8 unsigned char *ptr;

9 struct arpreq arpreq;

10 struct sockaddr_in *sin;

11 sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

12 for (ifi = get_ifi_info(AF_INET, 0); ifi != NULL; ifi = ifi->ifi_next) {

13 printf("%s: ", Sock_ntop(ifi->ifi_addr, sizeof(struct sockaddr_in)));

14 sin = (struct sockaddr_in*)&arpreq.arp_pa;

15 memcpy(sin, ifi->ifi_addr, sizeof(struct sockaddr_in));

16 if (ioctl(sockfd, SIOCGARP, &arpreq) < 0) {

17 err_ret("ioctl SIOCGARP");

18 continue;

19 }

20 ptr = &arpreq.arp_ha.sa_data[0];

21 printf("%x:%x:%x:%x:%x:%x\n", *ptr, *(ptr+1),

22 *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5));

23 }

24 exit(0);

25 }

Получение списка адресов и проход в цикле по каждому из них

12
Мы вызываем функцию
get_ifi_info
, чтобы получить IP-адреса узла, а затем выполняем цикл по всем адресам.

Вывод IP-адреса

13
Мы выводим IP-адреса, используя функцию
inet_ntop
. Мы просим функцию
get_ifi_info
возвращать только адреса IPv4, так как ARP с IPv6 не используется.

Вызов функции ioctl и проверка ошибок

14-19
Мы заполняем структуру
arp_pa
как структуру адреса сокета IPv4, содержащую адрес IPv4. Вызывается функция
ioctl
, и если она возвращает ошибку (например, указанный адрес относится к интерфейсу, не поддерживающему ARP), мы выводим сообщение и переходим к следующему адресу.

Вывод аппаратного адреса

20-22
Выводится аппаратный адрес, возвращаемый
ioctl
.

При запуске этой программы на нашем узле

hpux
мы получаем:

hpux % prmac

192.6.38.100: 0:60:b0:c2:68:9b

192.168.1.1: 0:60:b0:b2:28:2b

127.0.0.1: ioctl SIOCGARP: Invalid argument

17.9. Операции с таблицей маршрутизации

Для работы с таблицей маршрутизации предназначены два вызова функции

ioctl
. Эти два вызова требуют, чтобы третий аргумент функции ioctl был указателем на структуру
rtentry
, которая определяется в заголовочном файле
<net/route.h>
. Обычно эти вызовы исходят от программы
route
. Их может делать только привилегированный пользователь. При наличии маршрутизирующих сокетов (глава 18) для выполнения этих запросов используются именно они, а не функция
ioctl
.

  • Читать дальше
  • 1
  • ...
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • ...
Жанры
  • Романы
    • Исторические любовные романы
    • Эро литература
    • Современные любовные романы
    • Короткие любовные романы
    • Love Action
    • Остросюжетные любовные романы
    • Романы про измену
    • Прочие любовные романы
    • Любовно-фантастические романы
    • Зарубежные любовные романы
  • Приключения
    • Прочие приключения
    • Вестерны
    • Исторические приключения
    • Морские приключения
    • Путешествия и география
    • Зарубежные приключения
    • Приключения про индейцев
    • Природа и животные
  • Детективы
    • Техно триллер
    • Дамский детективный роман
    • Исторические детективы
    • Классические детективы
    • Шпионские детективы
    • Триллеры
    • Юридический триллер
    • Крутой детектив
    • Полицейские детективы
    • Медицинский триллер
    • Иронические детективы
    • Боевики
    • Криминальные детективы
    • Политические детективы
    • Маньяки
    • Зарубежные детективы
    • Прочие Детективы
    • Спецслужбы
  • Драматургия
    • Водевиль
    • Драма
    • Киносценарии
    • Мистерия
    • Пьесы
    • Сценарии
    • Трагедия
    • Зарубежная драматургия
  • Фантастика
    • Хентай
    • Ранобэ
    • Сянься
    • Дорама
    • Уся
    • Аниме
    • Космоопера
    • Юмористическая фантастика
    • Боевая фантастика
    • Героическая фантастика
    • Технофэнтези
    • Готический роман
    • Социально-философская фантастика
    • Попаданцы
    • Историческая фантастика
    • Ироническая фантастика
    • Зарубежная фантастика
    • Историческое фэнтези
    • Юмористическое фэнтези
    • Детективная фантастика
    • Эпическая фантастика
    • Мистика
    • Космическая фантастика
    • Фантастика: прочее
    • Постапокалипсис
    • Научная фантастика
    • Киберпанк
    • Альтернативная история
    • Ненаучная фантастика
    • РПГ
    • Стимпанк
    • Ироническое фэнтези
    • Ужасы и мистика
    • Сказочная фантастика
    • Фэнтези
    • Городское фэнтези
  • Эзотерика
    • Язычество
    • Фэн-шуй
    • Христианство
    • Религия
    • Зарубежная религиозная литература
    • Православие
    • Эзотерика
    • Хиромантия
    • Индуизм
    • Ислам
    • Протестантизм
    • Самосовершенствование
    • Буддизм
    • Католицизм
    • Астрология
    • Прочая религиозная литература
    • Иудаизм
  • Проза
    • Военная проза
    • Легкая проза
    • Сентиментальная проза
    • Советская классическая проза
    • Антисоветская литература
    • Афоризмы
    • Эпистолярная проза
    • Новелла
    • Семейный роман
    • Рассказ
    • Классическая проза
    • Эпопея
    • Эссе
    • Проза прочее
    • Повесть
    • Магический реализм
    • Современная проза
    • Контркультура
    • Роман
    • Историческая проза
    • Русская классическая проза
    • Феерия
  • Стихи и поэзия
    • Визуальная поэзия
    • Эпическая поэзия
    • в стихах
    • Песенная поэзия
    • Поэзия
    • Палиндромы
    • Cтихи, поэзия
    • Зарубежная поэзия
    • Верлибры
    • Экспериментальная поэзия
    • Лирика
    • Басни
    • Драматургия
  • Юмор
    • Зарубежный юмор
    • Юмористические стихи
    • Сатира
    • Прочий юмор
    • Комедия
    • Юмористическая проза
    • Анекдоты
  • Дом и досуг
    • Рыбалка
    • Охота
    • Здоровье детей
    • Домашние животные
    • Воспитание детей
    • Отдых / туризм
    • Зарубежная прикладная литература
    • Прочее домоводство
    • Прикладная литература
    • Домашнее хозяйство
    • Кулинария
    • Медицина и здоровье
    • Сделай сам
    • Спорт
    • Хобби и ремесла
    • Образовательная литература
    • Сад и Огород
    • Здоровье и красота
    • Развлечения
    • Коллекционирование
    • Секс / секс-руководства
  • Образование и наука
    • Боевые искусства
    • Органическая химия
    • Обществознание
    • Военная история
    • Ветеринария
    • Ораторское искусство / риторика
    • Физика
    • Химия
    • Семейная психология
    • Военная техника и вооружение
    • Иностранные языки
    • Прочая научная литература
    • Психотерапия и консультирование
    • Биохимия
    • Cпецслужбы
    • Астрономия и Космос
    • Школьные учебники
    • Учебная и научная литература
    • Учебники
    • Государство и право
    • Психология
    • Литературоведение
    • История
    • Научно-популярная литература
    • Политика
    • Детская психология
    • Юриспруденция
    • Шпаргалки
    • Педагогика
    • Физическая химия
    • Медицина
    • Биофизика
    • Языкознание
    • Зарубежная образовательная литература
    • Зоология
    • Геология и география
    • Краткое содержание
    • Зарубежная психология
    • Саморазвитие / личностный рост
    • Технические науки
    • Религиоведение
    • Военное дело
    • Личная эффективность
    • Аналитическая химия
    • Рефераты
    • Экология
    • Философия
    • Альтернативная медицина
    • Математика
    • Культурология
    • Военное дело: прочее
    • Ботаника
    • Биология
  • Словари и Энциклопедии
    • Бизнес-справочники
    • Справочники
    • Словари
    • Руководства
    • Энциклопедии
    • Словари, справочники
    • Путеводители
    • Прочая справочная литература
    • Зарубежная справочная литература
  • Финансы и бизнес
    • Отраслевые издания
    • Бухучет и аудит
    • Недвижимость
    • Деловая литература
    • Ценные бумаги
    • Внешнеэкономическая деятельность
    • Торговля
    • Зарубежная деловая литература
    • О бизнесе популярно
    • Стартапы и создание бизнеса
    • Корпоративная культура
    • Управление, подбор персонала
    • Маркетинг, PR, реклама
    • Личные финансы
    • Работа с клиентами
    • Менеджмент
    • Интернет-бизнес
    • Поиск работы, карьера
    • Малый бизнес
    • Делопроизводство
    • Государственное и муниципальное управление
    • Банковское дело
    • Экономика
  • Книги по IT
    • Прочая компьютерная литература
    • Базы данных
    • Цифровая обработка сигналов
    • Программное обеспечение
    • Интернет
    • Программирование
    • Зарубежная компьютерная литература
    • ОС и Сети
    • Компьютерное «железо»
  • Техника
    • Архитектура
    • Автомобили и ПДД
    • Строительство и сопромат
    • Металлургия
    • Транспорт и авиация
    • Радиоэлектроника
  • Древние книги
    • Зарубежная старинная литература
    • Мифы. Легенды. Эпос
    • Древневосточная литература
    • Древнерусская литература
    • Прочая старинная литература
    • Античная литература
    • Европейская старинная литература
  • Документальное
    • Историческая литература
    • Публицистика
    • Научпоп
    • Критика
    • Книги о войне
    • Истории из жизни
    • Военная документалистика
    • Зарубежная публицистика
    • Биографии и мемуары
    • Прочая документальная литература
  • Прочее
    • Интерьеры
    • Газеты и журналы
    • Театр
    • Музыка
    • Комиксы / манга
    • Зарубежная классика
    • Современная зарубежная литература
    • Изобразительное искусство, фотография
    • Мода и стиль
    • Искусство и Дизайн
    • Зарубежная литература о культуре и искусстве
    • Фанфик
    • Подростковая литература
    • Шахматы
    • Кино
    • Культура и искусство
    • Недописанное
    • Классическая литература
  • Без Жанра
    • Разное
    • Иностранная литература
  • Народные
    • Загадки
    • Народные сказки
    • Народные песни
    • Былины
    • Частушки
    • Фольклор: прочее
    • Пословицы, поговорки
  • Книги Для Детей
    • Детские остросюжетные
    • Сказки
    • Детские стихи
    • Прочая детская литература
    • Детская образовательная литература
    • Книги для дошкольников
    • Детская фантастика
    • Детские детективы
    • Книга-игра
    • Детский фольклор
    • Буквари
    • Детская проза
    • Детская познавательная и развивающая литература
    • Внеклассное чтение
    • Зарубежные детские книги
    • Детские приключения
Сейчас Читают
Para bellum
Para bellum
Ланцов Михаил Алексеевич
Прометей: повелитель стали
Прометей: повелитель стали
Рави Ивар
Мама для дракончика или Жена к вылуплению
Мама для дракончика или Жена к вылуплению
Максонова Мария
Моя (не) на одну ночь. Бесконтрактная любовь
Моя (не) на одну ночь. Бесконтрактная любовь
Тоцка Тала
Маверик
Маверик
Астахов Евгений Евгеньевич
Я же бать, или Как найти мать
Я же бать, или Как найти мать
Юнина Наталья
Без Чести
Без Чести
Щукин Иван
Генерал Скала и ученица
Генерал Скала и ученица
Суббота Светлана
Провинциал. Книга 4
Провинциал. Книга 4
Лопарев Игорь Викторович
Мастер 6
Мастер 6
Чащин Валерий

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: