17.8.3. Пример поиска информации хоста с использованием унаследованных функций
17.8.3. Пример поиска информации хоста с использованием унаследованных функций
Ниже приводится пример программы, использующей inet_aton(), inet_ntoa(), gethostbyname(), gethostbyaddr(). Она принимает единственный аргумент, который может быть либо именем хоста, либо IP-адресом в десятичном представлении с точками. Она отыскивает хост и распечатывает все имена хоста и IP-адреса, ассоциированные с ним.
Любой аргумент, который является действительным десятичным адресом, считается IP-номером, а не именем хоста.
1: /* lookup.с */
2:
3: /* Получает либо имя хоста, либо IP-адрес в командной строке, выводит
4: каноническое имя хоста для данного хоста и все IP-номера и имена
5: хостов, ассоциированные с ним. */
6:
7: #include <netdb.h> /* для gethostby* */
8: #include <sys/socket.h>
9: #include <netinet/in.h> /* для адресных структур */
10: #include <arpa/inet.h> /* для inet_ntoa() */
11: #include <stdio.h>
12:
13: int main(int argc, const char ** argv) {
14: struct hostent * answer;
15: struct in_addr address, ** addrptr;
16: char ** next;
17:
18: if (argc != 2) {
19: fprintf(stderr, "поддерживается только одиночный аргумент ");
20: return 1;
21: }
22:
23: /* Если аргумент выглядит как IP, то принимаем его как таковой
24: и выполняет обратный поиск имени */
25: if (inet_aton(argv[1], &address))
26: answer = gethostbyaddr((char *)&address, sizeof(address),
27: AF_INET);
28: else
29: answer = gethostbyname(argv[1])
30:
31: /* поиск имени хоста не удался */
32: if (!answer) {
33: herror("ошибка поиска хоста");
34: return 1;
35: }
36:
37: printf("Каноническое имя хоста: %s ", answer->h_name);
38:
39: /* если есть псевдонимы, все они выводятся на печать */
40: if (answer->h_aliases[0]) {
41: printf("Псевдонимы:");
42: for(next = answer->h_aliases; *next; next++)
43: printf(" %s", *next);
44: printf(" ");
45: }
46:
47: /* отобразить все IP-адреса для данной машины */
48: printf("Адреса:");
49: for (addrptr = (structin_addr **) answer->h_addr_list;
50: *addrptr; addrptr++)
51: printf (" %s", inet_ntoa(**addrptr));
52: printf(" ");
53:
54: return 0;
55: }
Ниже показан пример вывода этой программы.
$ ./lookup ftp.netscape.com
Каноническое имя хоста: ftp25.netscape.com
Псевдонимы: ftp.netscape.com anonftp10.netscape.com
Адреса: 207.200.74.21
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Принципы организации и поиска информации в Интернете
Принципы организации и поиска информации в Интернете Два основных способа поиска информации Существуют два основных способа поиска информации в Интернете – с помощью каталогов (их еще называют директориями) и с помощью поисковых машин.Директории обеспечивают
Два основных способа поиска информации
Два основных способа поиска информации Существуют два основных способа поиска информации в Интернете – с помощью каталогов (их еще называют директориями) и с помощью поисковых машин.Директории обеспечивают контекстный поиск, тогда как поисковые машины не обеспечивают
6.7 Еще один пример таблицы маршрутизации хоста
6.7 Еще один пример таблицы маршрутизации хоста Иногда таблицы маршрутизации хостов не столь просты. Рассмотрим, например, два маршрутизатора подсети 128.121.50.0 (см. рис. 6.5). Второй маршрутизатор управляет небольшой локальной сетью с несколькими рабочими станциями. Рис. 6.5.
Принципы организации и поиска информации в Интернете
Принципы организации и поиска информации в Интернете Поиск информации в Интернете проводится двумя основными способами – с помощью каталогов (их еще называют директориями) и с помощью поисковых машин.Директории обеспечивают контекстный поиск для структурированного
Плюсы и минусы директорий как способа поиска информации в Интернете
Плюсы и минусы директорий как способа поиска информации в Интернете Независимо от того, к видимому или к невидимому Интернету относятся директории, у них есть ряд общих положительных и отрицательных свойств.1. Директории всегда относительно невелики по размеру – в
Метапоисковые машины Интернета с примерами поиска различных типов информации
Метапоисковые машины Интернета с примерами поиска различных типов информации Каждый из увлеченных пользователей Сети в душе мечтает о существовании одной-единственной информационной системы, которая сочетала бы в себе достоинства всех поисковиков
Избавьте пользователя от поиска важной информации
Избавьте пользователя от поиска важной информации Если человеку нужно предпринимать какие-то усилия, чтобы найти на сайте информацию об условиях доставки или возможных способах оплаты, это губительно сказывается на конверсии посетителей в покупатели.Показательной
Схема для упрощения с использованием булевых функций
Схема для упрощения с использованием булевых функций Цифровая схема, показанная на рис. 17.39, состоит из двух источников сигнала, одного элемента И-НЕ, и двух элементов ИЛИ-НЕ. Начните новый проект с именем mix и разместите компоненты, как показано на рисунке. В качестве
Пример: уведомление с использованием sigwait вместо обработчика
Пример: уведомление с использованием sigwait вместо обработчика Хотя программа из предыдущего примера работает правильно, можно повысить ее эффективность. Программа использует sigsuspend для блокировки в ожидании прихода сообщения. При помещении сообщения в пустую очередь
4.4.2.3. Создание геометрии с использованием MySQL-специфических функций
4.4.2.3. Создание геометрии с использованием MySQL-специфических функций MySQL обеспечивает набор полезных ненормативных функций для создания геометрии с WKB представлениями. Функции, описанные в этом разделе, MySQL-расширения спецификации OpenGIS. Результатами этих функций будут
Урок 6.4. Расчеты с использованием функций и имен ячеек
Урок 6.4. Расчеты с использованием функций и имен ячеек Типы ссылок. Имена ячеек Ссылки на ячейки и диапазоны могут быть относительными и абсолютными. До сих пор в формулах использовались относительные ссылки, в которых обозначение ячейки состоит из буквы и цифры.
Практическая работа 46. Выполнение расчетов с использованием Мастера функций
Практическая работа 46. Выполнение расчетов с использованием Мастера функций Задание. Используйте функцию ОКРУГЛ для округления цен в прайс-листе из предыдущей практической работы (см. рис. 6.32). Округление необходимо, поскольку при пересчете может получиться результат с
Практическая работа 47. Расчеты с использованием логических функций
Практическая работа 47. Расчеты с использованием логических функций Задание. Рассчитать надбавку за стаж по следующей шкале: до трех лет – 0; от трех до 10 лет – 10 %, 10 и более лет – 20 %.Для решения задачи нужно сформулировать словесный вариант решения. Он может звучать