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

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

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

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

Инструменты поиска информации в Интернете, полезные для успешного отражения информационного нападения

Из книги Противодействие черному PR в Интернете автора Кузин Александр Владимирович

Инструменты поиска информации в Интернете, полезные для успешного отражения информационного


Принципы организации и поиска информации в Интернете

Из книги Блог. Создать и раскрутить автора Ющук Евгений Владимирович

Принципы организации и поиска информации в Интернете Два основных способа поиска информации Существуют два основных способа поиска информации в Интернете – с помощью каталогов (их еще называют директориями) и с помощью поисковых машин.Директории обеспечивают


Два основных способа поиска информации

Из книги Интернет-разведка [Руководство к действию] автора Ющук Евгений Леонидович

Два основных способа поиска информации Существуют два основных способа поиска информации в Интернете – с помощью каталогов (их еще называют директориями) и с помощью поисковых машин.Директории обеспечивают контекстный поиск, тогда как поисковые машины не обеспечивают


Принципы организации и поиска информации в Интернете

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Принципы организации и поиска информации в Интернете Поиск информации в Интернете проводится двумя основными способами – с помощью каталогов (их еще называют директориями) и с помощью поисковых машин.Директории обеспечивают контекстный поиск для структурированного


Плюсы и минусы директорий как способа поиска информации в Интернете

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

Плюсы и минусы директорий как способа поиска информации в Интернете Независимо от того, к видимому или к невидимому Интернету относятся директории, у них есть ряд общих положительных и отрицательных свойств.1. Директории всегда относительно невелики по размеру – в


Метапоисковые машины Интернета с примерами поиска различных типов информации

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Метапоисковые машины Интернета с примерами поиска различных типов информации Каждый из увлеченных пользователей Сети в душе мечтает о существовании одной-единственной информационной системы, которая сочетала бы в себе достоинства всех поисковиков


Урок 6.4. Расчеты с использованием функций и имен ячеек

Из книги MySQL: руководство профессионала автора Паутов Алексей В

Урок 6.4. Расчеты с использованием функций и имен ячеек Типы ссылок. Имена ячеек Ссылки на ячейки и диапазоны могут быть относительными и абсолютными. До сих пор в формулах использовались относительные ссылки, в которых обозначение ячейки состоит из буквы и цифры.


Практическая работа 46. Выполнение расчетов с использованием Мастера функций

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

Практическая работа 46. Выполнение расчетов с использованием Мастера функций Задание. Используйте функцию ОКРУГЛ для округления цен в прайс-листе из предыдущей практической работы (см. рис. 6.32). Округление необходимо, поскольку при пересчете может получиться результат с


Практическая работа 47. Расчеты с использованием логических функций

Из книги OrCAD PSpice. Анализ электрических цепей автора Кеоун Дж.

Практическая работа 47. Расчеты с использованием логических функций Задание. Рассчитать надбавку за стаж по следующей шкале: до трех лет – 0; от трех до 10 лет – 10 %, 10 и более лет – 20 %.Для решения задачи нужно сформулировать словесный вариант решения. Он может звучать


Пример: уведомление с использованием sigwait вместо обработчика

Из книги Удвоение продаж в интернет-магазине автора Парабеллум Андрей Алексеевич

Пример: уведомление с использованием sigwait вместо обработчика Хотя программа из предыдущего примера работает правильно, можно повысить ее эффективность. Программа использует sigsuspend для блокировки в ожидании прихода сообщения. При помещении сообщения в пустую очередь


4.4.2.3. Создание геометрии с использованием MySQL-специфических функций

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

4.4.2.3. Создание геометрии с использованием MySQL-специфических функций MySQL обеспечивает набор полезных ненормативных функций для создания геометрии с WKB представлениями. Функции, описанные в этом разделе, MySQL-расширения спецификации OpenGIS. Результатами этих функций будут


6.7 Еще один пример таблицы маршрутизации хоста

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

6.7 Еще один пример таблицы маршрутизации хоста Иногда таблицы маршрутизации хостов не столь просты. Рассмотрим, например, два маршрутизатора подсети 128.121.50.0 (см. рис. 6.5). Второй маршрутизатор управляет небольшой локальной сетью с несколькими рабочими станциями. Рис. 6.5.


Схема для упрощения с использованием булевых функций

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

Схема для упрощения с использованием булевых функций Цифровая схема, показанная на рис. 17.39, состоит из двух источников сигнала, одного элемента И-НЕ, и двух элементов ИЛИ-НЕ. Начните новый проект с именем mix и разместите компоненты, как показано на рисунке. В качестве


Избавьте пользователя от поиска важной информации

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

Избавьте пользователя от поиска важной информации Если человеку нужно предпринимать какие-то усилия, чтобы найти на сайте информацию об условиях доставки или возможных способах оплаты, это губительно сказывается на конверсии посетителей в покупатели.Показательной