Лекции по курсу "Системное программирование для UNIX". Литвинов Д.Г. - 46 стр.

UptoLike

Составители: 

46
uint32_t inet_network (const char *NAME)
Функция извлекает номер сети из передаваемого ей в параметре адреса хоста,
заданного в виде чисел, разделенных точками. Если задан неправильный адрес хоста,
функция возвращает –1. Функция используется только с адресами типов A, B и C и не
работает с бесклассовыми адресами.
char * inet_ntoa (struct in_addr ADDR)
Функция конвертирует адрес стандарта IPv4 в строку, состоящую из чисел,
разделенных точками. Возвращаемое значение является указателем на статически-
выделенную область памяти. Последующие вызовы функции могут перезаписать
содержимое этого буфера, поэтому для дальнейшего использования возвращаемое
значение необходимо скопировать. В многопотоковых программах функция создает
буфер для каждого потока. Вместо этой функции рекомендуется использовать функцию
inet_ntop, которая работает с адресами в обеих стандартах.
struct in_addr inet_makeaddr (uint32_t NET, uint32_t LOCAL)
Эта функция создает адрес IPv4 из составляющих его номера сети и локального
адреса.
uint32_t inet_lnaof (struct in_addr ADDR)
Эта функция возвращает значение локального адреса задаваемого адреса хоста.
Работает только с адресами классов A, B и C.
uint32_t inet_netof (struct in_addr ADDR)
Эта функция возвращает значение номера сети задаваемого адреса хоста.
Работает только с адресами классов A, B и C.
int inet_pton (int AF, const char *CP, void *BUF)
Эта функция конвертирует адрес интернет (как IPv4, так и IPv6) из текстового
представления в двоичный формат. Аргумент AF может принимать значения AF_INET
и AF_INET6 в зависимости от того, какого типа адрес необходимо конвертировать. CP –
указатель на входную строку; BUF – указатель на буфер, куда будет сохранен результат
операции. Необходимо позаботиться о том, чтобы размер буфера был достаточен для
хранения результата.
const char * inet_ntop (int AF, const void *CP, char *BUF,
size_t LEN)
Функция конвертирует адрес интернет (как IPv4, так и IPv6) из двоичного
формата в текстовое представление. Аргумент AF может принимать значения AF_INET
и AF_INET6 в зависимости от того, какого типа адрес необходимо конвертировать. CP –
указатель на адрес, который необходимо конвертировать; BUF – указатель на буфер,
куда будет сохранен результат; LEN – длина этого буфера. Функция возвращает адрес
буфера результата.
Имена хостов
Для внутреннего пользования операционная система для преобразования
символьных имен хостов в числовые адреса использует свою базу данных. База данных
обычно расположена в файле /etc/hosts. При отсутствии запрашиваемого символьного
имени в базе данных, система обращается к сервису, называемому сервером имен, если
он явно указан в настройках сети. Функции и структуры данных для доступа к этой базе
данных определены в заголовочном файле <netdb.h>.
struct hostent {
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
char *h_addr;
};
          uint32_t inet_network (const char *NAME)
        Функция извлекает номер сети из передаваемого ей в параметре адреса хоста,
заданного в виде чисел, разделенных точками. Если задан неправильный адрес хоста,
функция возвращает –1. Функция используется только с адресами типов A, B и C и не
работает с бесклассовыми адресами.
          char * inet_ntoa (struct in_addr ADDR)
         Функция конвертирует адрес стандарта IPv4 в строку, состоящую из чисел,
разделенных точками. Возвращаемое значение является указателем на статически-
выделенную область памяти. Последующие вызовы функции могут перезаписать
содержимое этого буфера, поэтому для дальнейшего использования возвращаемое
значение необходимо скопировать. В многопотоковых программах функция создает
буфер для каждого потока. Вместо этой функции рекомендуется использовать функцию
inet_ntop, которая работает с адресами в обеих стандартах.
          struct in_addr inet_makeaddr (uint32_t NET, uint32_t LOCAL)
          Эта функция создает адрес IPv4 из составляющих его номера сети и локального
адреса.
          uint32_t inet_lnaof (struct in_addr ADDR)
       Эта функция возвращает значение локального адреса задаваемого адреса хоста.
Работает только с адресами классов A, B и C.
          uint32_t inet_netof (struct in_addr ADDR)
       Эта функция возвращает значение номера сети задаваемого адреса хоста.
Работает только с адресами классов A, B и C.
          int inet_pton (int AF, const char *CP, void *BUF)
        Эта функция конвертирует адрес интернет (как IPv4, так и IPv6) из текстового
представления в двоичный формат. Аргумент AF может принимать значения AF_INET
и AF_INET6 в зависимости от того, какого типа адрес необходимо конвертировать. CP –
указатель на входную строку; BUF – указатель на буфер, куда будет сохранен результат
операции. Необходимо позаботиться о том, чтобы размер буфера был достаточен для
хранения результата.
          const char * inet_ntop (int AF, const void *CP, char *BUF,
               size_t LEN)
        Функция конвертирует адрес интернет (как IPv4, так и IPv6) из двоичного
формата в текстовое представление. Аргумент AF может принимать значения AF_INET
и AF_INET6 в зависимости от того, какого типа адрес необходимо конвертировать. CP –
указатель на адрес, который необходимо конвертировать; BUF – указатель на буфер,
куда будет сохранен результат; LEN – длина этого буфера. Функция возвращает адрес
буфера результата.

        Имена хостов
        Для внутреннего пользования операционная система для преобразования
символьных имен хостов в числовые адреса использует свою базу данных. База данных
обычно расположена в файле /etc/hosts. При отсутствии запрашиваемого символьного
имени в базе данных, система обращается к сервису, называемому сервером имен, если
он явно указан в настройках сети. Функции и структуры данных для доступа к этой базе
данных определены в заголовочном файле .
          struct hostent {
               char *h_name;
               char **h_aliases;
               int h_addrtype;
               int h_length;
               char **h_addr_list;
               char *h_addr;
          };



          46