как получить IP-адрес клиента из сокета - PullRequest
2 голосов
/ 07 апреля 2019

Я хочу напечатать IP-адрес клиента, подключенного к сокету сервера.Я видел много ответов, но все пошло не так со мной.Также, пожалуйста, укажите правильное место для кода, на который вы отвечаете:

Ожидаемый результат = IP-адрес клиента.,,.

1 Ответ

0 голосов
/ 07 апреля 2019

Вы можете использовать функцию inet_ntoa() для этого:

printf("IP of client: %s\n", inet_ntoa(cli.sin_addr));

Поместите это куда-нибудь после того, как вы accept() установили соединение клиента.Для использования функции inet_ntoa() необходимо включить соответствующий заголовочный файл arpa/inet.h.В противном случае возвращенный (64-разрядный) указатель будет обрезан до (32-разрядного) целого числа, что приведет к segfault.

Вы должны всегда включить все предупреждения;это показало бы вам, что функция необъявлена.

Наконец, это должно привести к желаемому результату.

...