Главная страница
    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.04 c
2-1163963407
Defort
2006-11-19 22:10
2006.12.10
Вопросы по экспорту и базам данных


15-1164018598
Tex
2006-11-20 13:29
2006.12.10
XPManifest


15-1164126004
Reaktor
2006-11-21 19:20
2006.12.10
Прпал пуск в ХР


2-1164473612
maltsevaanna
2006-11-25 19:53
2006.12.10
Сохдание простого help


1-1161929527
Shlomo
2006-10-27 10:12
2006.12.10
Точка входа в проц-у ConvertToGlobalHandle не найден в kernel32





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский