Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и сети

Войти
Регистрация
Восстановить пароль
 
 
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
#1

Indy TCP server спамят - Delphi

15.12.2016, 09:45. Просмотров 767. Ответов 22
Метки нет (Все метки)

Доброе время суток форумчане. столкнулся с такой проблемой, у меня запущен сервер Indy TCP server, есть клиент, который просто отправляет строчку информации на сервер, сервер дальше работает с этой инфой. Столкнулся с проблемой - постоянного спама (скорей всего от ботов) т.к. идет постоянное подключение и сервер ведет себя неадекватно ( порой даже зависает ) неадекватность заключается в том, что выскакивают какие то сообщения и т.д.

Как сделать так, что бы сервер принимал подключение только с моего клиента ? возможно сделать какой-то ключ проверки или что то типа этого. спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2016, 09:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Indy TCP server спамят (Delphi):

Indy TCP Server/Client - Delphi
Кто может привести пример правильно запуска сервера с использование Indy TCP Server, и правильный вид подключения к серверу с...

Indy TCP Client/Server для Интернета - Delphi
Сделал простенький клиент и сервер. Сервер отсылает скрин экрана с заданной периодичностью. Клиент соответственно его принимает. в клиенте...

Indy TCP и код из C# - Delphi
Здравствуйте! Собственно переписываю часть кода с C# на дельфи, и понять не могу, а понять не могу вот что: Имеется код на C#: ...

Передача записи в indy 10 (tcp) - Delphi
У кого-нибудь есть пример передачи записи по TCP в INDY 10 , так чтобы сервер передавал запись клиенту + интересует как клиент будет это...

Не могу запустить сервер (indy TCP) - Delphi
выдает ошибку "could not bind socket. address and port are already in use" код сервера unit Unit4; interface uses ...

Не хочет соединяться по протоколу TCP [Indy] - Delphi
Здравствуйте, я делаю две программы, одна сервер а другая клиент. Но они никак не соединяются. Как быть. Вот коды обеих программ....

22
qwertehok
2187 / 2177 / 514
Регистрация: 29.08.2013
Сообщений: 14,529
15.12.2016, 10:04 #2
так добавьте в свою строку ключ и на сервере проверяйте его
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
15.12.2016, 12:34  [ТС] #3
а примерчик не подкинете ?
0
qwertehok
2187 / 2177 / 514
Регистрация: 29.08.2013
Сообщений: 14,529
15.12.2016, 12:41 #4
как обработать строку?
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
15.12.2016, 13:40  [ТС] #5
как проверять ключ
0
qwertehok
2187 / 2177 / 514
Регистрация: 29.08.2013
Сообщений: 14,529
15.12.2016, 13:49 #6
а как вы обрабатываете строку на сервере?
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
15.12.2016, 13:52  [ТС] #7
Delphi
1
AContext.Connection.Socket.ReadLn;
0
xeonz
607 / 181 / 28
Регистрация: 16.05.2014
Сообщений: 1,324
15.12.2016, 16:45 #8
Закрыть сервер файрволом.
0
Nanotentacle
329 / 212 / 67
Регистрация: 20.10.2016
Сообщений: 977
15.12.2016, 16:49 #9
Bookkc1, просто так сообщения выскакивать не будут. Тут либо ошибка, и вам надо прислать её текст, либо вы сами выводит это сообщение. Иного не дано. Я Подозреваю, что вас никто не спамит, а причина совсем в ином. На основании чего вы подумали про спам?
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
15.12.2016, 17:22  [ТС] #10
По тому как по событию у меня стоит вывод сообщения и ип клиента, подключается какой то ип и начинают происходить волшебства с программой.

Сама по себе программа получается от клиента (такой же программы, только клиент) одну строку и записывает её в файл. Для удобства для себя сделал memo с инфой, что бы видно было кто подключился и какую инфу занесли в файл. О программе знаю только я и её клиентская часть только у меня пока что, а на сервер приходят сообщения вида
Код
[OPTIONS / RTSP/1.0]
и так далее.

Если я правильно понял, нужно ввести проверочный код, то есть, если сервер получает от клиента этот код - значит работаем дальше, если не получаем - отключаем клиента, так? только вот как сделать этот самый проверочный код?

Добавлено через 1 минуту
сервер получает строку от клиента так :

Delphi
1
x:= AThread.Connection.ReadLn;
а клиент отправляет её так

Delphi
1
idTcpClient1.WriteLn
Добавлено через 11 минут
Вот консоль
Delphi
1
2
3
4
5
[7:14:01] Disconnecting: (218.236.19.111)
[7:14:01] Connecting: (218.236.19.111)
[7:14:06] Disconnecting: (218.236.19.111)
[7:14:06] Connecting: (218.236.19.111)
[7:14:11] Disconnecting: (218.236.19.111)
ип мне неизвестен, о сервере кроме меня никто не знает
0
Nanotentacle
329 / 212 / 67
Регистрация: 20.10.2016
Сообщений: 977
15.12.2016, 19:38 #11
А порт какой используется? И айпишник у вас белый или серый? Просто я не думаю, что конкретно вы и ваш ПК представляет интерес для хакеров. Может быть просто сканер портов работает. И ещё: чем конкретно вам эти подключения мешают?
0
xeonz
607 / 181 / 28
Регистрация: 16.05.2014
Сообщений: 1,324
15.12.2016, 20:41 #12
Закройте файрволом или смените порт сервера. И все у вас будет нормально.
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
16.12.2016, 09:48  [ТС] #13
Цитата Сообщение от Nanotentacle Посмотреть сообщение
чем конкретно вам эти подключения мешают?
Цитата Сообщение от Bookkc1 Посмотреть сообщение
идет постоянное подключение и сервер ведет себя неадекватно ( порой даже зависает ) неадекватность заключается в том, что выскакивают какие то сообщения и т.д.
Вот чем.

Порт стоит 4321, скорей всего сканер портов простой. Но хотелось бы сделать проверку.
0
Nanotentacle
329 / 212 / 67
Регистрация: 20.10.2016
Сообщений: 977
16.12.2016, 10:44 #14
Bookkc1, сервер не должен себя так вести. Обработка подключения/отключения для него - это стандартная процедура. Что-то в вашем коде не так, скорее всего. Либо у вас не сделана обработка исключений протокола, которые часто случаются в таких ситуациях и выдают что-то типа "Connection closed gracefully".

Попробуйте отловить происходящее в OnException.
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 747
16.12.2016, 21:36  [ТС] #15
например как это сделать ?
0
16.12.2016, 21:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2016, 21:36
Привет! Вот еще темы с ответами:

Отправка файла Indy Client-Server - Delphi
Здравствуйте. Вот такая вот проблема. Отправляю файл с клиента на сервер INDY with Form2 do begin try ...

Как подписать TCP Server сертификатом? - Delphi
Очень интересует где взять и как подписать сервер этим сертификатом.

TCP Server\Client ругается на процедуру - Delphi
Нашел такой код Сервер procedure TForm1.TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient); begin ...

TCP server/client нужен ваш совет - Delphi
хочу сделать прогу по типу чата. думаю, что лучше всего подойдут компоненты IdTCPServer и IdTCPClient а можно ли с их помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru