uIP 1.0
|
Эти функции могут использоваться для преобразования между разными форматами данных, используемых в uIP. Подробнее...
Макросы | |
#define | uip_ipaddr(addr, addr0, addr1, addr2, addr3) |
Конструирует адрес IP из 4 байт. | |
#define | uip_ip6addr(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7) |
Составляет адрес IPv6 из восьми 16-битных слов. | |
#define | uip_ipaddr_copy(dest, src) |
Копирует IP-адрес в другой IP-адрес. | |
#define | uip_ipaddr_cmp(addr1, addr2) |
Сравнение двух IP-адресов | |
#define | uip_ipaddr_maskcmp(addr1, addr2, mask) |
Сравнение двух адресов IP с сетевой маской | |
#define | uip_ipaddr_mask(dest, src, mask) |
Маскирует сетевую часть адреса IP. | |
#define | uip_ipaddr1(addr) |
Получение первого октета от адреса IP. | |
#define | uip_ipaddr2(addr) |
Получение второго октета от адреса IP. | |
#define | uip_ipaddr3(addr) |
Получение третьего октета от адреса IP. | |
#define | uip_ipaddr4(addr) |
Получение четвертого октета от адреса IP. | |
#define | HTONS(n) |
Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт. | |
Функции | |
u16_t | htons (u16_t val) |
Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт. |
Эти функции могут использоваться для преобразования между разными форматами данных, используемых в uIP.
#define HTONS | ( | n | ) |
Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт.
Этот макрос главным образом используется для преобразования констант номера порта. Для преобразования переменных в сетевой порядок байт используйте вместо этого функцию htons().
См. определение в файле uip.h строка 1061
Используется в htons(), resolv_conf(), uip_arp_arpin(), uip_arp_out() и uip_udp_new().
#define uip_ip6addr | ( | addr, | |
addr0, | |||
addr1, | |||
addr2, | |||
addr3, | |||
addr4, | |||
addr5, | |||
addr6, | |||
addr7 | |||
) |
#define uip_ipaddr | ( | addr, | |
addr0, | |||
addr1, | |||
addr2, | |||
addr3 | |||
) |
Конструирует адрес IP из 4 байт.
Эта функция составляет IP-адрес того типа, который обрабатывает внутри себя uIP. Эта функция удобна, чтобы указать IP-адреса для использования, например, с функцией uip_connect().
Пример:
uip_ipaddr_t ipaddr; struct uip_conn *c; uip_ipaddr(&ipaddr, 192,168,1,2); c = uip_connect(&ipaddr, HTONS(80));
addr | Указатель на переменную uip_ipaddr_t, которая будет заполнена адресом IP. |
addr0 | Первый октет адреса IP. |
addr1 | Второй октет адреса IP. |
addr2 | Третий октет адреса IP. |
addr3 | Четвертый октет адреса IP. |
#define uip_ipaddr1 | ( | addr | ) |
Получение первого октета от адреса IP.
Выбирает первый октет из IP-адреса.
Пример:
uip_ipaddr_t ipaddr; u8_t octet; uip_ipaddr(&ipaddr, 1,2,3,4); octet = uip_ipaddr1(&ipaddr);
В предыдущем примере переменная "octet" будет содержать значение 1.
#define uip_ipaddr2 | ( | addr | ) |
Получение второго октета от адреса IP.
Выбирает второй октет из IP-адреса.
Пример:
uip_ipaddr_t ipaddr; u8_t octet; uip_ipaddr(&ipaddr, 1,2,3,4); octet = uip_ipaddr2(&ipaddr);
В предыдущем примере переменная "octet" будет содержать значение 2.
#define uip_ipaddr3 | ( | addr | ) |
Получение третьего октета от адреса IP.
Выбирает третий октет из IP-адреса.
Пример:
uip_ipaddr_t ipaddr; u8_t octet; uip_ipaddr(&ipaddr, 1,2,3,4); octet = uip_ipaddr3(&ipaddr);
В предыдущем примере переменная "octet" будет содержать значение 3.
#define uip_ipaddr4 | ( | addr | ) |
Получение четвертого октета от адреса IP.
Выбирает четвертый октет из IP-адреса.
Пример:
uip_ipaddr_t ipaddr; u8_t octet; uip_ipaddr(&ipaddr, 1,2,3,4); octet = uip_ipaddr4(&ipaddr);
В предыдущем примере переменная "octet" будет содержать значение 4.
#define uip_ipaddr_cmp | ( | addr1, | |
addr2 | |||
) |
Сравнение двух IP-адресов
Сравнивает два IP-адреса.
Пример:
uip_ipaddr_t ipaddr1, ipaddr2; uip_ipaddr(&ipaddr1, 192,16,1,2); if(uip_ipaddr_cmp(&ipaddr2, &ipaddr1)) { printf("They are the same"); }
addr1 | Первый IP-адрес. |
addr2 | Второй IP-адрес. |
См. определение в файле uip.h строка 901
Используется в uip_arp_arpin() и uip_arp_out().
#define uip_ipaddr_copy | ( | dest, | |
src | |||
) |
Копирует IP-адрес в другой IP-адрес.
Копирует IP-адрес с одного места в другое.
Пример:
uip_ipaddr_t ipaddr1, ipaddr2; uip_ipaddr(&ipaddr1, 192,16,1,2); uip_ipaddr_copy(&ipaddr2, &ipaddr1);
dest | Место назначения копии. |
src | Исходные данные, откуда IP будет копироваться. |
См. определение в файле uip.h строка 872
Используется в uip_arp_out(), uip_connect() и uip_udp_new().
#define uip_ipaddr_mask | ( | dest, | |
src, | |||
mask | |||
) |
Маскирует сетевую часть адреса IP.
Выделяет маской сетевую часть от IP-адреса, которая получается от адреса и сетевой маски.
Пример:
uip_ipaddr_t ipaddr1, ipaddr2, netmask; uip_ipaddr(&ipaddr1, 192,16,1,2); uip_ipaddr(&netmask, 255,255,255,0); uip_ipaddr_mask(&ipaddr2, &ipaddr1, &netmask);
В предыдущем примере переменная "ipaddr2" будет содержать IP-адрес 192.168.1.0.
dest | Место, куда будет помещен результат. |
src | Адрес IP. |
mask | Сетевая маска. |
#define uip_ipaddr_maskcmp | ( | addr1, | |
addr2, | |||
mask | |||
) |
Сравнение двух адресов IP с сетевой маской
Сравнивает два адреса IP с сетевой маской. Маски используются, чтобы маскировать биты, которые должны сравниваться.
Пример:
uip_ipaddr_t ipaddr1, ipaddr2, mask; uip_ipaddr(&mask, 255,255,255,0); uip_ipaddr(&ipaddr1, 192,16,1,2); uip_ipaddr(&ipaddr2, 192,16,1,3); if(uip_ipaddr_maskcmp(&ipaddr1, &ipaddr2, &mask)) { printf("They are the same"); }
addr1 | Первый IP-адрес. |
addr2 | Второй IP-адрес. |
mask | Сетевая маска. |
См. определение в файле uip.h строка 931
Используется в uip_arp_out().
Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт.
Этот функция главным образом используется для преобразования переменных номера порта. Для преобразования констант в сетевой порядок байт используйте вместо этого макрос HTONS().
См. определение в файле uip.c строка 1855
Перекрестные ссылки HTONS.
Используется в uip_chksum(), uip_connect(), uip_ipchksum(), uip_udp_new() и webclient_get().