[sockets c++] прием соединений только от локалхоста
От: Kowak  
Дата: 26.12.05 13:12
Оценка:
есть сервер.
как заставить accept() реагировать только на соединения от локалхоста (или от конкретного адреса)?
Re: [sockets c++] прием соединений только от локалхоста
От: MaximE Великобритания  
Дата: 26.12.05 13:41
Оценка:
On Mon, 26 Dec 2005 13:12:34 -0000, Kowak <17841@users.rsdn.ru> wrote:

> есть сервер.

> как заставить accept() реагировать только на соединения от локалхоста

забайндить сокет только на локальный интерфейс.

> (или от конкретного адреса)?


Переносимый способ: принимать все соединения и фильтровать по полученному из accept адресу клиента. Слыхал, что в виндозе можно установить фильтр.

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 2.0
Re: [sockets c++] прием соединений только от локалхоста
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.12.05 13:46
Оценка:
Kowak wrote:
>
> есть сервер.
> как заставить accept() реагировать только на соединения от локалхоста
> (или от конкретного адреса)?

Только от локалхоста — забиндить сокет перед listen()'ом на 127.1

От конкретного адреса — никак. Только самому проверять адрес клиента
(getpeername()) и ручками закрывать соединение от нежелательных клиентов
(ставим SO_LINGER по нулям и говорим close() — клиент получает TCP reset).
Posted via RSDN NNTP Server 2.0
Re[2]: [sockets c++] прием соединений только от локалхоста
От: butcher Россия http://bu7cher.blogspot.com
Дата: 27.12.05 16:13
Оценка:
Здравствуйте, MaximE, Вы писали:

ME>Переносимый способ: принимать все соединения и фильтровать по полученному из accept адресу клиента. Слыхал, что в виндозе можно установить фильтр.


В Windows можно использовать WSAAccept и ConditionFunc.
В UNIX'ах, я знаю несколько способов чтобы сделать это, но они не так это делают.. Хотя если сделать свой accept_filter..

Нет ничего невозможного..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.