Unix предоставляет различные вызовы функций, которые помогут вам управлять IP-адресами. Эти функции преобразуют интернет-адреса между строками ASCII (то, что люди предпочитают использовать) и двоичными значениями, упорядоченными в байтах сети (значения, которые хранятся в структурах адресов сокетов).
Следующие три вызова функций используются для адресации IPv4 —
- int inet_aton (const char * strptr, struct in_addr * addrptr)
- in_addr_t inet_addr (const char * strptr)
- char * inet_ntoa (struct in_addr inaddr)
int inet_aton (const char * strptr, struct in_addr * addrptr)
Этот вызов функции преобразует указанную строку в стандартной точечной нотации Интернета в сетевой адрес и сохраняет адрес в предоставленной структуре. Преобразованный адрес будет в сетевом порядке байтов (байты упорядочены слева направо). Возвращает 1, если строка была действительной, и 0 при ошибке.
Ниже приведен пример использования —
#include <arpa/inet.h> (...) int retval; struct in_addr addrptr memset(&addrptr, '\0', sizeof(addrptr)); retval = inet_aton("68.178.157.132", &addrptr); (...)
in_addr_t inet_addr (const char * strptr)
Этот вызов функции преобразует указанную строку в стандартной точечной нотации Интернета в целочисленное значение, подходящее для использования в качестве адреса Интернета. Преобразованный адрес будет в сетевом порядке байтов (байты упорядочены слева направо). Он возвращает 32-битный двоичный сетевой упорядоченный IPv4-адрес и INADDR_NONE при ошибке.
Ниже приведен пример использования —
#include <arpa/inet.h> (...) struct sockaddr_in dest; memset(&dest, '\0', sizeof(dest)); dest.sin_addr.s_addr = inet_addr("68.178.157.132"); (...)
char * inet_ntoa (struct in_addr inaddr)
Этот вызов функции преобразует указанный адрес хоста в Интернет в строку в стандартной нотации Интернета.
Ниже приведен пример использования —