Почему inet_ntoa всегда возвращает ложный IP-адрес (программирование сокетов) - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть простое клиент-серверное приложение с сокетом, поэтому клиент подключается к серверу с ip-адресом сервера, я хочу вернуть ip подключенного клиента с inet_ntoa, но он всегда возвращает ложный ip подключенного клиента.Зачем ?и как ее решить.

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

1 Ответ

2 голосов
/ 08 апреля 2019
struct sockaddr_in addr_remote;
...
connfd = accept(sockfd, (SA*)&cli, &len); 
...
printf( " Welcome %s " , inet_ntoa(addr_remote.sin_addr));

Вы используете inet_ntoa с addr_remote.addr_remote никогда не устанавливается в вашем коде, и поэтому его содержимое непредсказуемо.Вы, вероятно, намеревались использовать addr_remote внутри accept, но вы использовали cli там.

...