Skip to content

Latest commit

 

History

History
42 lines (25 loc) · 2.35 KB

File metadata and controls

42 lines (25 loc) · 2.35 KB

getpeername() - информация о пире.

Пир (peer) - в контексте сетевого программирования, это конечный узел - устройство (пк, телефон и так далее).

Функция getpeername() расскажет вам информацию, о том кто находится на конечном узле сокета:

#include <sys/socket.h>
int getpeername(int sockfd, struct sockaddr* addr, int* addrlen);

Параметры:

  • int sockfd - дескриптор подключенного сокета (клиент, который подключился и о котором нам нужно получить информацию).

  • struct sockaddr* addr - указатель , который будет хранить информацию о пире.

  • int* addrlen - указатель на локальный int, который должен иметь значение sizeof(*addr) или sizeof(struct sockaddr)

Функция возвращает -1 при ошибке, и записывает ошибку в errno.

Как только вы получите адрес в struct sockaddr* addr, вы можете использовать функции: inet_ntop(), getnameinfo() или gethostbyaddr() для вывода дополнительной информации.


gethostname() - получение информации о себе.

Функция gethostname() возвращает информацию о компьютере, на котором запущенна программа. Эту информацию можно потом использовать в функции getaddrinfo() для определения IP-адреса вашей локальной машины.

Сигнатура:

#include <unistd.h>

int gethostname(char* hostname, size_t size);

Параметры:

  • char* hostname - буфер, куда будет записан хост в виде строки, при выполнении функции.
  • size_t size - размер буфера.

Функция возвращает 0 при успешном выполнении, -1 при ошибке (и записывает errno).