![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как оборвать свзь с клиентом у которого, левый ip_address [D6, WinXP]
kivadim © (2005-10-12 14:27:00)Народ расскажите как правильно сделать.
Надо при попытке клиента приконнектиться к серверу проверь ip_address клиента и если он не содержиться в списке разрешенных адресов то оборвать соединение с клиентом. Думаю что надо проверять все это дело в событии
ServerSocket1Accept, но как определять ip_address подлючающегося клиента если клиентов несколько и соответственно ServerSocket1.Socket.Connections[] клиента не известно?
Использую TServerSocket и TClientSocket в режиме stNonBlocking.
atruhin (2005-10-12 17:13:00) [1]>> а как тогда вообще не допустить такого клиента к подключению?
Winsock2 -> WSAAccept
Digitman (2005-10-12 15:29:00) [2]а ему и "пихать" не надо ..
достаточно послать кучу SYN-пакетов серверу, чтобы тот, никак не готовый к такому повороту дела, рухнул как колосс на глиняных ногах
kivadim (2005-10-12 15:14:00) [3]>> -=S..S=- (12.10.05 14:32) [1]
Так конечно работает, но клиент всетаки успевает запихнуть в сокет кое-какие данные, а было бы лучше если б он вообще ничего не смог записать в сокет.
kivadim (2005-10-12 15:00:00) [4]>> Digitman © (12.10.05 14:40) [2]
Согласен, а как тогда вообще не допустить такого клиента к подключению?
Digitman (2005-10-12 14:40:00) [5]злонамеренный клиент при таком подходе легко обрушит твой сервер.
-=S..S=- (2005-10-12 14:32:00) [6]В онконнект
есть переменная Socket с этой переменной берёшь айпи если не подходит
Socket.Close