Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.10;
Скачать: CL | DM;

Вниз

Indy предварительная проверка на разрешенные IP для подключения   Найти похожие ветки 

 
Kacnep ©   (2006-07-24 08:42) [0]

Доброе время суток! Уважаемые мастера!
Кто сам занимался или точно знает ответ просьба пособить.
Инди 10, Дельфи 6. Вопросы по IdCmdTCPServer но в принципе для любого ИНДИ сервера...
1. Вопрос.
Для чего в инди Bindings?
Смотрел кучу примеров с его использование но не разобрался.
Может кто нить что нить пояснить по этому поводу.
Есть книга Инди в глубину :). Примеры - но не понятно. Все примеры используют ЭТО.
2. Вопрос.
Как прежде чем принть подключение сервером - определить если IP не в списке разрешенных - то даже и не разрешать подключаться ему?
Я сейчас делаю так...
procedure Tf_Main.id_SrvConnect(AContext: TIdContext);
begin
 AddLog(AContext.Connection.Socket.Binding.PeerIP+" Connected!",LogF);
 if (lb_IPs.Count=0) or (lb_IPs.Items.IndexOf(AContext.Connection.Socket.Binding.PeerIP)<0) then begin
   AContext.Connection.Disconnect;
   AddLog(AContext.Connection.Socket.Binding.PeerIP+" kicked!",LogF);
 end;
end;

В этом коде мне не нравиться то что подключение вроде бы уже состоялось :(
Или я что то не правильно понял?
Заранее Спасибо всем откликнувшимся!


 
Сергей М. ©   (2006-07-24 09:01) [1]


> Kacnep ©   (24.07.06 08:42)


> Для чего в инди Bindings?


Для привязки гнезда к нескольким сетевым интерфейсам одновременно.


> Как прежде чем принть подключение сервером - определить
> если IP не в списке разрешенных - то даже и не разрешать
> подключаться ему?


Никак. Инди не реализует такую возможность по ряду важных причин.


 
Kacnep ©   (2006-07-24 09:57) [2]

Еще раз спасибо за ответ.
По поводу первого...
Т.е. если я не использую несколько сетвых и не предусматриваю эту возможность в своей программе то мне (если брать кодинг из примеров) нужно везде поубирать все что относиться к БИНДИНГу?

По поводу второго...
Т.е. код примера приведенного мной - верен? После подключения я проверяю может ли он быть ко мне подлючен и если нет то Дисконект...


 
Сергей М. ©   (2006-07-24 10:05) [3]


> нужно везде поубирать все что относиться к БИНДИНГу?


Так все-таки к Bindings или к Binding ? Это же разные же свойства разных объектов ..


> По поводу второго...
> Т.е. код примера приведенного мной - верен?


Верен, но он не решает задачу в оригинальной ее постановке - не допустить коннект с конкретным IP клиента.


 
Kacnep ©   (2006-07-24 10:49) [4]

1.
Вот код из примера запуска сервера
 id_Srv.Bindings.Clear; // bindings cannot be cleared until TidTCPServer is inactive
 try
   for i := 0 to lbIPs.Count-1 do
     if lbIPs.Checked[i] then begin
       Binding:=IdTCPServer.Bindings.Add;
       Binding.IP:=lbIPs.Items.Strings[i];
       Binding.Port:=StrToInt(edtPort.Text);
       SL.append("Server bound to IP " + Binding.IP + " on port " + edtPort.Text);
     end;


Что бы это значило?

2. А что тогда означает Bindings и Binding?

3. Каким образом можно решить задачу в оригинаолной постановке? Идеи?
Хотелось бы чтобы именно для неразрешенных ИП даже события коннект не наступало.

Спасибо.


 
Сергей М. ©   (2006-07-24 11:13) [5]


> Что бы это значило?


Это добавление сетевых интерфейсов, которые серверное гнездо будет обслуживать.


> что тогда означает Bindings и Binding?


Св-во Binding отражает св-ва конкретно установленного коннекта по конкретному сетевому интерфейсу.

Св-во Bindings отражает список всех сетевых интерфейсов, которые сервер будет использовать после активации.


> Каким образом можно решить задачу в оригинаолной постановке?
>  Идеи?


Отказаться от Инди в пользу любого иного аналогичного по назначению ПО, использующего механизм условного акцептирования запросов на соединение.

см. WSAAccept()


 
Kacnep ©   (2006-07-24 11:21) [6]

Спасибо Большое за ответы!
Тема закрыта.



Страницы: 1 вся ветка

Текущий архив: 2006.12.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1164131457
Фесс
2006-11-21 20:50
2006.12.10
Работа со списком


15-1164286983
misha_gr
2006-11-23 16:03
2006.12.10
C# для начинающих.


8-1146034876
Devider
2006-04-26 11:01
2006.12.10
Изменение размера изображения при видеозахвате.


15-1164079730
Slider007
2006-11-21 06:28
2006.12.10
С днем рождения ! 21 ноября


15-1164109758
Семен Сорокин
2006-11-21 14:49
2006.12.10
Защита программы