Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > определение ip клиента. |
Автор: Lorido 12.8.2009, 02:03 | ||
Задача ставилась определить ip подключившегося сокета клиента. Нашёл пример использования, скокпипастил ![]()
Заранее благодарю. |
Автор: volkrey 12.8.2009, 06:33 |
посмотри, вот в этой строчке (возможно я и ошибаюсь) должен быть дескриптор нового сокета getpeername(newsock_fd,(struct sockaddr*)&ss,&len); |
Автор: bourne 12.8.2009, 06:46 | ||
Lorido, немного переделал твой сорец:
|
Автор: Lorido 12.8.2009, 12:43 | ||
Нет, всё не то. Второй вариант не подходит ввиду того, что это должно стоять на линукс сервере. А подключать при этом виндовую библиотеку не эстетично что ли. Программа, код которой я скинул, возвращает айпи. Единственно что это не те айпи-адреса с которых проходит тест. Может есть вариант как получить адрес клиента каким нибудь другим способом? поставил проверку
Теперь постоянно валятся ошибки. Просмотрел все примеры в гугле - всё точно так же. ![]() Я даже не знаю куда копать. |
Автор: andrew_121 12.8.2009, 12:47 |
Lorido, Измени пару строк, и будет работать на Линукс. |
Автор: Lorido 12.8.2009, 14:10 | ||
какие строки надо переделать? меня больше интересует почему
выкидывает ошибку. |
Автор: GoldFinch 12.8.2009, 15:01 |
а что не boost::asio? |
Автор: Lorido 12.8.2009, 15:05 | ||
ошибка нашлась оказывается дейтсвительно в примере была ошибка.
Проморгал. Вот что значит нехватка опыта. Спасибо всем кто помог. |
Автор: andrew_121 12.8.2009, 15:05 | ||
Lorido, Вот:
И еще: http://www.rsdn.ru/article/unix/sockets.xml настоятельно рекомендую. Мне тоже интересно. |
Автор: GoldFinch 12.8.2009, 15:11 | ||
как-то так |
Автор: andrew_121 12.8.2009, 15:16 |
GoldFinch, Красотища! |
Автор: Олег2005 12.8.2009, 22:11 |
Небольшой коммент: listen(sock_fd,backlog) На самом деле во многих TCP-модулях различных ОС истинное значение длины очереди буфера для приема входящих соединений расчитывается по формуле: backlog * 3 / 2 + 1 и listen(sd, 0) разрешит принять одно соединение, listen (sd, 5) - 8. Потому значение backlog=1 практически не используют......... |
Автор: xvr 13.8.2009, 11:16 | ||
Кстати, после
|
Автор: xrays777 13.8.2009, 13:11 |
inet_ntoa() ntohs() воспользуйся этими функциями и будет тебе счастье |