ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Помоги с сокетами на делфе =)
  #1  
Старый 11.06.2007, 13:44
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


Отправить сообщение для zl0y с помощью ICQ
Question Помоги с сокетами на делфе =)

Вобщем пишу прогу она работает с сетью через сокеты,но там потребовалось защита от ддоса тоесть без нее можно сервер положить спрутом вот и я что то не могу придумать как ограничить количество подключений с 1 ипа помогите плиз!
 
Ответить с цитированием

  #2  
Старый 11.06.2007, 13:55
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

То есть на делфне пишется серверная часть? Сокеты реализуются через компонент или на winsock?
 
Ответить с цитированием

  #3  
Старый 11.06.2007, 14:01
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


Отправить сообщение для zl0y с помощью ICQ
По умолчанию

Не делфе пишуться оби проги. Обе используют TClient
 
Ответить с цитированием

  #4  
Старый 11.06.2007, 14:10
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

В общем, я думаю, что нужно создать массив записей вида:
Код:
record
  ip: string;
  timeout: integer;
end;
И при подключении клиента проверять: если его IP не содержится в массиве, то разрешить подключение, его IP занести в массив, в timeout внести текущее время. Если ip содержится в массиве, то отнимаем от текущего времени значение timeout, если оно больше определенного значения, разрешаем подключение и обновляем данные, иначе запрещаем. Это в обобщенном виде, на практике может оказаться немного сложней.
 
Ответить с цитированием

  #5  
Старый 11.06.2007, 14:18
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


Отправить сообщение для zl0y с помощью ICQ
По умолчанию

Тогда вопрос как отключить клиента ? типа если Socket.ActiveConnections > 100 then ????
Socket.Close не помогает
 
Ответить с цитированием

  #6  
Старый 11.06.2007, 14:50
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

ServerSocket1.Socket.Connections[id].Close;

Где id - порядковый номер клиента. Блин, не люблю я эти компоненты сетевые, неудобные они.
 
Ответить с цитированием

  #7  
Старый 11.06.2007, 14:52
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

Цитата:
Функция Accept из стандартной библиотеки сокетов позволяет серверу извлечь из очереди соединений информацию о подключившемся клиенте и создать сокет для его обслуживания. Эти действия выполняются безусловно, для любых подключившихся клиентов. Если сервер допускает подключение не любых клиентов, а только тех, которые отвечают некоторым условиям (для протокола TCP эти условия могут заключаться в том, какие IP-адреса и какие порты допустимо использовать клиентам), сразу после установления соединения его приходится разрывать, если клиент не удовлетворяет этим условиям. Для упрощения этой операции в WinSock 2 предусмотрена функция WSAAccept
Вот это рульная штука. WinSock 2 вообще рулит
 
Ответить с цитированием

  #8  
Старый 11.06.2007, 14:55
gemaglabin
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме:
7681825

Репутация: 4451


По умолчанию

Хочешь не хочешь , ты ВСЕГДА юзаешь winsock2 , только подключаешь заголовочные файлы второй или первой версии.
 
Ответить с цитированием

  #9  
Старый 11.06.2007, 18:08
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

> вот и я что то не могу придумать как ограничить количество подключений с 1 ипа помогите плиз!

возможно будет логичным предположтиь что стоит дисконектить клиента, если он уже подключен? сравнить его айпи с теми что уже подключены?
я незнаю как там у вас все в делфи с тысячей дибильных компонентов где подключение - это визаульная часть формы приложения, но я бы лично в потоке сервера записывал бы айпи и не создавал бы потом обслуж. клиента если айпи уже есть, скажем в массиве
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс для работы с сокетами на С++ _Great_ С/С++, C#, Delphi, .NET, Asm 32 10.09.2009 10:51
Помоги с чатом www.telekom7.ru Drug1989 Чаты 1 07.08.2006 02:53
Косяки с сокетами и непонятки с пониманием http-запросов je0n PHP, PERL, MySQL, JavaScript 4 28.06.2006 02:56
Perl и работа с сокетами LoFFi Чужие Статьи 0 10.05.2006 22:44



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ