Читаем Разработка приложений в среде Linux. Второе издание полностью

NI_DGRAMОтыскивается имя службы UDP для указанного порта (вместо имени службы TCP). Примечание. Эти два имени почти всегда идентичны, однако существует несколько портов, определенных только для UDP-портов (протокол прерывания SNMP — один из них), и несколько случаев, когда один и тот же номер порта используется для различных TCP и UDP служб (например, порт 512 применяется и для TCP-службы exec, и для UDP-службы biff).
NI_NAMEREQDЕсли преобразование IP-адреса в имя хоста завершается неудачей и установлен данный флаг, то функция getnameinfo() возвращает ошибку. В противном случае она возвращает IP-адрес в формате с разделительными точками или двоеточиями.
NI_NOFQDNИмена хостов обычно возвращаются как полностью уточненные имена доменов. Это означает, что возвращается полное имя хоста, а не локальное сокращение. Если, к примеру, установлен данный флаг, вашим хостом является digit.iana.org, и вы ищете IP-адрес, соответствующий www.iana.org, тогда будет возвращено имя хоста www. Поиск имен хостов для остальных машин при этом не затрагивается (в предыдущем примере поиск адреса для www.ietf.org предоставит полное имя хоста www.ietf.org.
NI_NUMERICHOSTВместо выполнения поиска имен хостов функция getnameinfo() преобразует IP-адрес в IP-адрес по аналогии с inet_ntop().
NI_NUMERICSERVНомер порта размещается в servicename в виде форматированной числовой строки (а не преобразуется в имя службы).

Возвращаемые коды для getnameinfo() — те же самые, что и для gethostinfо(); в случае успеха возвращается нуль, в случае неудачи — код ошибки. Полный перечень возможных ошибок приведен в табл. 17.3. Для преобразования этих ошибок в описательные строки служит функция gai_strerror().

Ниже приведен пример, показывающий использование getnameinfo() для выполнения обратного поиска имени для адресов IPv4 и IPv6.

$ ./reverselookup --host ::1

hostname: localhost

$ ./reverselookup --host 127.0.0.1

hostname: localhost

$ ./reverselookup --host 3ffe:b00:c18:1::10

hostname: www.6bone.net

$ ./reverselookup --host 206.123.31.124 --service 80

hostname: www.6bone.net service name: http

  1: /* reverselookup.с */

  2:

  3: #include

  4: #include

  5: #include

  6: #include

  7: #include

  8: #include

  9:

 10: /* Вызывается, если во время обработки командной строки происходит ошибка;

 11:    отображает короткое сообщение для пользователя и завершается. */

 12: void usage(void) {

 13:  fprintf(stderr, "использование: reverselookup [--numerichost] "

 14:   "[--numericserv] [--namereqd] [--udp]\n");

 15:  fprintf(stderr, " [--nofqdn] "

 16:   "[--service<служба>] [--host<имя_хоста>]\n");

 17:  exit(1);

 18: }

 19:

 20: int main(int argc, const char ** argv) {

 21:  int flags;

 22:  const char * hostAddress = NULL;

 23:  const char * serviceAddress = NULL;

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных

Все жанры