Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
2-1163774326
312kbps
2006-11-17 17:38
2006.12.10
Опрос конкретного порта во всей локальной сети !


1-1162220311
312kbps
2006-10-30 17:58
2006.12.10
Снять Hook. Критические ошибки ((((


10-1126113296
kblc
2005-09-07 21:14
2006.12.10
inproc com-server


3-1159512584
vodvorezlaya
2006-09-29 10:49
2006.12.10
Трёхмерные таблицы


2-1164011733
Steep
2006-11-20 11:35
2006.12.10
ADO + Ms SQL Server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский