#include <netinet/ether.h> char * ether_ntoa(const struct ether_addr *addr); struct ether_addr * ether_aton(const char *asc); int ether_ntohost(char *hostname, const struct ether_addr *addr); int ether_hostton(const char *hostname, struct ether_addr *addr); int ether_line(const char *line, struct ether_addr *addr, char *hostname); /* GNU extensions */
char * ether_ntoa_r(const struct ether_addr *addr, char *buf); struct ether_addr * ether_aton_r(const char *asc, struct ether_addr *addr);
Функция ether_ntoa() преобразует адрес узла Ethernet addr из двоичного кода в сетевом порядке расположения байтов в строку в виде шестнадцатеричных-символов-и-двоеточий, разрешая начальные нули. Строки возвращаются в статически выделенный буфер, который могут переписать любые последующие вызовы.
Функция ether_ntohost() распределяет адрес Ethernet, соответствующий имени узла в файле /etc/ethers и возвращает ненулевое значение, если он не может быть найден.
Функция ether_hostton() распределяет имя узла, соответствующего адресу Ethernet в файле /etc/ethers и возвращает ненулевое значение, если он не может быть найден.
Функция ether_line() обрабатывает строку в формате /etc/ethers (адрес ethernet, сопровождаемый пустым символом и именем узла; и имя узла, или ненулевое значение, если он не может быть обработан. Буфер, на который указывает hostname должен быть достаточно большим, так как он должен вместить строку line.
Функции ether_ntoa_r и ether_aton_r являются дублирующими защищенными версиями функций ether_ntoa и ether_aton соответственно, не использующими статических буферов.
Структура ether_addr определена в net/ethernet.h таким образом:
struct ether_addr { u_int8_t ether_addr_octet[6]; }
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |