ВУЗ:
Составители:
45
Исторически адреса IPv4 разделены на две части – номер сети и локальный
адрес в сети. Все адреса стандарта IPv4 разделены на 3 класса: A, B и C. В них
соответственно 1, 2 и 3 байта представляют собой адрес сети, остальная часть адреса –
локальный адрес в сети. Адреса IPv4 могут быть и бесклассовыми. В этом случае адрес
хоста задается в виде пары 32-битный адрес плюс 32-битная маска подсети. Маска
подсети имеет вид, например 255.0.0.0. В этом случае биты, установленные в 1
указывают часть адреса, определяющую адрес сети, биты установленные в 0 –
локальный адрес в сети. Бесклассовые адреса могут быть записаны и следующим
образом: 10.0.0.0/8. Это означает, что на адрес сети отводится 8 бит, остальная часть
адреса – локальный адрес.
Адреса IPv6 всегда являются бесклассовыми.
Адреса IPv4 программно представляются в некоторых случаях как
целочисленное значение (тип данных uint32_t), в других случаях это значение
упаковывается в структуру struct in_addr. Адреса IPv6 упаковываются в структуру struct
in6_addr.
Для задания интернет-адресов в заголовочном файле определены следующие
типы данных и константы:
struct in_addr
Этот тип данных используется в некоторых случаях для задания адресов
стандарта IPv4. Структура имеет единственное поле s_addr типа uint32_t, определяющее
адрес хоста.
uint32_t INADDR_LOOPBACK
Эта макроподстановка может использоваться для работы с локальной машиной
вместо попыток определить действительный адрес. Это адрес IPv4 127.0.0.0, который
также называется localhost. В случае обращения к адресу INADDR_LOOPBACK взамен
действительного адреса машины при передаче отсутствует сетевой трафик.
uint32_t INADDR_ANY
Константа, представляющая “любой входящий адрес”.
uint32_t INADDR_BROADCAST
Константа, представляющая широковещательный адрес.
uint32_t INADDR_NONE
Эта константа возвращается некоторыми функциями для указания ошибки.
struct in6_addr
Эта структура используется для хранения адреса IPv6. Она хранит 128-битные
данные, доступ к которому можно получить используя несколько способов.
struct in6_addr in6addr_loopback
Эта константа содержит так называемый кольцевой адрес стандарта IPv6.
struct in6_addr in6addr_any
Эта константа представляет собой неспецифированный (пустой) адрес.
Функции для манипуляции адресом хоста
int inet_aton (const char *NAME, struct in_addr *ADDR)
Эта функция конвертирует адрес стандарта IPv4 NAME из стандартного
представления, состоящего из чисел и точек, в двоичное представление и сохраняет его
в структуру ADDR. Функция возвращает ненулевое значение в случае успешного
выполнения и 0 в случае ошибки.
uint32_t inet_addr (const char *NAME)
Функция конвертирует адрес стандарта IPv4 из стандартного представления,
состоящего из чисел, разделенных точками, в двоичное представление и возвращает
полученное значение. Если задан неправильный адрес, функция возвращает значение
INADDR_NONE. Функция является устаревшей, так как адрес INADDR_NONE
является допустимым. Рекомендуется использовать inet_addr.
Исторически адреса IPv4 разделены на две части – номер сети и локальный адрес в сети. Все адреса стандарта IPv4 разделены на 3 класса: A, B и C. В них соответственно 1, 2 и 3 байта представляют собой адрес сети, остальная часть адреса – локальный адрес в сети. Адреса IPv4 могут быть и бесклассовыми. В этом случае адрес хоста задается в виде пары 32-битный адрес плюс 32-битная маска подсети. Маска подсети имеет вид, например 255.0.0.0. В этом случае биты, установленные в 1 указывают часть адреса, определяющую адрес сети, биты установленные в 0 – локальный адрес в сети. Бесклассовые адреса могут быть записаны и следующим образом: 10.0.0.0/8. Это означает, что на адрес сети отводится 8 бит, остальная часть адреса – локальный адрес. Адреса IPv6 всегда являются бесклассовыми. Адреса IPv4 программно представляются в некоторых случаях как целочисленное значение (тип данных uint32_t), в других случаях это значение упаковывается в структуру struct in_addr. Адреса IPv6 упаковываются в структуру struct in6_addr. Для задания интернет-адресов в заголовочном файле определены следующие типы данных и константы: struct in_addr Этот тип данных используется в некоторых случаях для задания адресов стандарта IPv4. Структура имеет единственное поле s_addr типа uint32_t, определяющее адрес хоста. uint32_t INADDR_LOOPBACK Эта макроподстановка может использоваться для работы с локальной машиной вместо попыток определить действительный адрес. Это адрес IPv4 127.0.0.0, который также называется localhost. В случае обращения к адресу INADDR_LOOPBACK взамен действительного адреса машины при передаче отсутствует сетевой трафик. uint32_t INADDR_ANY Константа, представляющая “любой входящий адрес”. uint32_t INADDR_BROADCAST Константа, представляющая широковещательный адрес. uint32_t INADDR_NONE Эта константа возвращается некоторыми функциями для указания ошибки. struct in6_addr Эта структура используется для хранения адреса IPv6. Она хранит 128-битные данные, доступ к которому можно получить используя несколько способов. struct in6_addr in6addr_loopback Эта константа содержит так называемый кольцевой адрес стандарта IPv6. struct in6_addr in6addr_any Эта константа представляет собой неспецифированный (пустой) адрес. Функции для манипуляции адресом хоста int inet_aton (const char *NAME, struct in_addr *ADDR) Эта функция конвертирует адрес стандарта IPv4 NAME из стандартного представления, состоящего из чисел и точек, в двоичное представление и сохраняет его в структуру ADDR. Функция возвращает ненулевое значение в случае успешного выполнения и 0 в случае ошибки. uint32_t inet_addr (const char *NAME) Функция конвертирует адрес стандарта IPv4 из стандартного представления, состоящего из чисел, разделенных точками, в двоичное представление и возвращает полученное значение. Если задан неправильный адрес, функция возвращает значение INADDR_NONE. Функция является устаревшей, так как адрес INADDR_NONE является допустимым. Рекомендуется использовать inet_addr. 45
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »