Astel064
Помог мой пост, ставь +!
- Сообщения
- 276
- Репутация
- 51
AutoIt: 3.3.6.1
Версия сервера: 1.0
Версия клиента: 1.1
Категория: Интернет, Сеть, Файловая система.
Описание: Не простой сервер TCP подключений с расширенной настройкой и авторизацией (по желанию)
Файл: TcpServer.7z (во вложениях)
История версий:
Источник: autoit-script.ru
Автор: Astel064
Версия сервера: 1.0
Версия клиента: 1.1
Категория: Интернет, Сеть, Файловая система.
Описание: Не простой сервер TCP подключений с расширенной настройкой и авторизацией (по желанию)
Содержимое данной темы скорее всего является примером, или рабочим проектом, может полезняшкой.
О написанном мною сервере: Иногда бывает, что необходимо иметь удаленный доступ к файлам и папкам на своем домашнем ПК, сидя например, на работе. Чтобы реализовать такую идею в своей программе (с интерфейсом, который Вам нравится) придется потратить часа 2 (минимум) за придумыванием и написанием "движка" (назовем его так). Кому лень тратить время на написание "движка", то можете взять его здесь.
По сути, это готовый сервер для авторизации, передачи файлов, листинга папок, может даже и для выполнения команд (Выключение, Перезагрузка и т.д...).
Функции этого "движка":
• Автоматическое прослушивание всех IP адресов машины, на котором запущен сервер (без ограничений, хоть их 10 будет). И даже, если Вы запустили сервер, а после подключили еще одно сетевое подключение, то в течении минуты сервер найдет его и начнет "прослушку" и на нем.
• Вызов отдельной пользовательской функции перед каждым действием (отправкой файла, принятием файла и т.д...). Для каждого события (принятие, отправка, листинг и т.д...) используются свои пользовательские функции. В этих пользовательских функциях Вы можете выполнять что угодно, но главное, Вы можете устанавливать условия, с помощью которых действие (например, отправка файла) будет выполнено, или отменено. Подробнее в файлах с расширением ".INC".
• Отправка файлов (или просто данных) с сервера - клиенту и наоборот.
• Удаление файлов на сервере.
• Получение MD5 хешей файлов сервера.
• Листинг файлов и папок в указанном каталоге сервера.
• Доступ к операциям с файлами после авторизации клиента.
• Своеобразная защита от атак: блокирует подключения с IP клиента на указанное кол-во секунд, если пользователь сделал определенное кол-во подключений в течении 1 минуты.
• Доступ к серверу из браузера (например, чтобы скачать свое приложение, с помощью которого Вы сможете оперировать файлами). Также, Вы можете отобразить страничку, текст.
Все эти (и не только эти) параметры можно легко настроить. Чтобы узнать "как?", читайте файл "Info.txt". В этом файле собраны все необходимые сведения для настройки этого сервера.
О написанном мною сервере: Иногда бывает, что необходимо иметь удаленный доступ к файлам и папкам на своем домашнем ПК, сидя например, на работе. Чтобы реализовать такую идею в своей программе (с интерфейсом, который Вам нравится) придется потратить часа 2 (минимум) за придумыванием и написанием "движка" (назовем его так). Кому лень тратить время на написание "движка", то можете взять его здесь.
По сути, это готовый сервер для авторизации, передачи файлов, листинга папок, может даже и для выполнения команд (Выключение, Перезагрузка и т.д...).
Функции этого "движка":
• Автоматическое прослушивание всех IP адресов машины, на котором запущен сервер (без ограничений, хоть их 10 будет). И даже, если Вы запустили сервер, а после подключили еще одно сетевое подключение, то в течении минуты сервер найдет его и начнет "прослушку" и на нем.
• Вызов отдельной пользовательской функции перед каждым действием (отправкой файла, принятием файла и т.д...). Для каждого события (принятие, отправка, листинг и т.д...) используются свои пользовательские функции. В этих пользовательских функциях Вы можете выполнять что угодно, но главное, Вы можете устанавливать условия, с помощью которых действие (например, отправка файла) будет выполнено, или отменено. Подробнее в файлах с расширением ".INC".
• Отправка файлов (или просто данных) с сервера - клиенту и наоборот.
• Удаление файлов на сервере.
• Получение MD5 хешей файлов сервера.
• Листинг файлов и папок в указанном каталоге сервера.
• Доступ к операциям с файлами после авторизации клиента.
• Своеобразная защита от атак: блокирует подключения с IP клиента на указанное кол-во секунд, если пользователь сделал определенное кол-во подключений в течении 1 минуты.
• Доступ к серверу из браузера (например, чтобы скачать свое приложение, с помощью которого Вы сможете оперировать файлами). Также, Вы можете отобразить страничку, текст.
Все эти (и не только эти) параметры можно легко настроить. Чтобы узнать "как?", читайте файл "Info.txt". В этом файле собраны все необходимые сведения для настройки этого сервера.
=========================================================================================
НАСТРОЙКА СЕРВЕРА (дополнительные файлы лежат в Server_Funcs)
Основные настройки сервера хранятся в файле Server.au3, в специальном блоке (участке файла, разделенный ------).
Детальная настройка (настройка событий) производится в папке Server_Funcs, в файлах с расширением ".INC".
Настройка событий по файлам:
Server_Authorization.inc = Авторизация (проверка имени пользователя, пароля и IP адреса клиента)
Server_FileDelete.inc = Контроль удаления файлов
Server_FileHash.inc = Контроль получения хешей файлов
Server_FilePut.inc = Контроль записи полученных файлов
Server_FileWrite.inc = Обработчик принятия и сохранения данных от клиента
Server_FileRead.inc = Обработчик отправки данных клиенту
Server_FileSend.inc = Контроль отправки файлов клиенту
Server_Listing.inc = Контроль получения списка папок и файлов
Server_HttpGet.inc = Обработчик команд HTTP сервера. При доступе к серверу из браузеров.
Server_LogWrite.inc = Обработчик логирования событий сервера
Другие (функциональные) файлы:
CheckLocalIP.mf = Функция проверки на наличие новых (непрослушиваемых сервером) IP адресов на локальной системе (где и работает сервер)
CheckUserLimit.mf = Функция контроля ограничений многократных подключений с одного IP адреса
GetAllIp.mf = Функция сбора всех доступных IP адресов локальной системы
SocketToIP.mf = Функция преобразования IP клиента из ID сокета клиента
FileDelete.mf = Функция удаления файлов
FileHash.mf = Функция получения хешей файлов
FilePutToServer.mf = Функция загрузки и записи файлов на сервер
FileWriteToServer.mf = Функция загрузки файлов на сервер
FileReadToClient.mf = Функция чтения файлов с сервера
FileSendToClient.mf = Функция загрузки файлов с сервера
Listing.mf = Функция листинга файлов и папок сервера
=========================================================================================
НАСТРОЙКА КЛИЕНТА (дополнительные файлы лежат в Client_Funcs)
Особых настроек для клиента нет, имеются лишь функции, которые Вы можете использовать в своих программах.
Другие (функциональные) файлы:
Authorization.inc = Функция подключения и авторизации клиента на сервере
FileDelete.inc = Функция удаления файлов с сервера
FileGet.inc = Функция загрузки и записи файлов с сервера
FileRead.inc = Функция загрузки файлов с сервера
FileHash.inc = Функция получения хешей файлов с сервера
FilePut.inc = Функция выгрузки и записи файлов на сервер
FileWrite.inc = Функция выгрузки файлов на сервер
Listing.inc = Функция листинга файлов и папок сервера
=========================================================================================
=========================================================================================
=========================================================================================
Неиспользуемые функции (СЕРВЕР)
Сервер собран так, что Вы можете отключать (закомментировать) функции, которые Вы не будете использовать.
Например, Вам не нужна функция Listing (отправка списка файлов и папок клиенту) и Вы хотите отключить ее.
Для этого Вам нужно закомментировать 3 строки в файле "Server.au3". Сами строки (для данного примера) перечислены ниже:
--------------------------------------------------------------------------------------------
#include "Server_Funcs\Listing.mf"; 7
#include "Server_Funcs\Server_Listing.inc"; 7
If $vData[1] = "List" Then _Listing($vData[2]); 7
--------------------------------------------------------------------------------------------
Для удобства, строки, которые принадлежат одной функции пронумерованы. В примере они имеют номер 7.
Строки с номером 0 в конце не следует отключать, т.к. они неоходимы серверу.
=========================================================================================
=========================================================================================
=========================================================================================
Неиспользуемые функции (КЛИЕНТ)
Сервер собран так, что Вы можете отключать (закомментировать) функции, которые Вы не будете использовать. А можете просто не добавлять их вообще.
Например, Вам не нужна функция Listing (получение клиентом списка файлов и папок сервера) и Вы хотите отключить ее.
Для этого Вам нужно либо закомментировать строку
#include "Client_Funcs\Listing.inc"; 7
, либо, вообще не включать ее в свой скрипт.
Как и в случае с сервером, все функции пронумерованы.
Строки с номером 0 в конце не следует отключать, т.к. они неоходимы клиенту.
=========================================================================================
=========================================================================================
=========================================================================================
Дополнительная информация о клиенте.
Клиентская часть этого "Рабочего примера" построена в виде отдельных функций. Для каждой функции используется один файл.
Вы можете включить файлы из папки "Client_Funcs" в свой скрипт как обычные UDF.
***********************************************************************************************************************************************
Автор: Astel064
Версия: 1.0
Выход: 18:32 30.08.2014
НАСТРОЙКА СЕРВЕРА (дополнительные файлы лежат в Server_Funcs)
Основные настройки сервера хранятся в файле Server.au3, в специальном блоке (участке файла, разделенный ------).
Детальная настройка (настройка событий) производится в папке Server_Funcs, в файлах с расширением ".INC".
Настройка событий по файлам:
Server_Authorization.inc = Авторизация (проверка имени пользователя, пароля и IP адреса клиента)
Server_FileDelete.inc = Контроль удаления файлов
Server_FileHash.inc = Контроль получения хешей файлов
Server_FilePut.inc = Контроль записи полученных файлов
Server_FileWrite.inc = Обработчик принятия и сохранения данных от клиента
Server_FileRead.inc = Обработчик отправки данных клиенту
Server_FileSend.inc = Контроль отправки файлов клиенту
Server_Listing.inc = Контроль получения списка папок и файлов
Server_HttpGet.inc = Обработчик команд HTTP сервера. При доступе к серверу из браузеров.
Server_LogWrite.inc = Обработчик логирования событий сервера
Другие (функциональные) файлы:
CheckLocalIP.mf = Функция проверки на наличие новых (непрослушиваемых сервером) IP адресов на локальной системе (где и работает сервер)
CheckUserLimit.mf = Функция контроля ограничений многократных подключений с одного IP адреса
GetAllIp.mf = Функция сбора всех доступных IP адресов локальной системы
SocketToIP.mf = Функция преобразования IP клиента из ID сокета клиента
FileDelete.mf = Функция удаления файлов
FileHash.mf = Функция получения хешей файлов
FilePutToServer.mf = Функция загрузки и записи файлов на сервер
FileWriteToServer.mf = Функция загрузки файлов на сервер
FileReadToClient.mf = Функция чтения файлов с сервера
FileSendToClient.mf = Функция загрузки файлов с сервера
Listing.mf = Функция листинга файлов и папок сервера
=========================================================================================
НАСТРОЙКА КЛИЕНТА (дополнительные файлы лежат в Client_Funcs)
Особых настроек для клиента нет, имеются лишь функции, которые Вы можете использовать в своих программах.
Другие (функциональные) файлы:
Authorization.inc = Функция подключения и авторизации клиента на сервере
FileDelete.inc = Функция удаления файлов с сервера
FileGet.inc = Функция загрузки и записи файлов с сервера
FileRead.inc = Функция загрузки файлов с сервера
FileHash.inc = Функция получения хешей файлов с сервера
FilePut.inc = Функция выгрузки и записи файлов на сервер
FileWrite.inc = Функция выгрузки файлов на сервер
Listing.inc = Функция листинга файлов и папок сервера
=========================================================================================
=========================================================================================
=========================================================================================
Неиспользуемые функции (СЕРВЕР)
Сервер собран так, что Вы можете отключать (закомментировать) функции, которые Вы не будете использовать.
Например, Вам не нужна функция Listing (отправка списка файлов и папок клиенту) и Вы хотите отключить ее.
Для этого Вам нужно закомментировать 3 строки в файле "Server.au3". Сами строки (для данного примера) перечислены ниже:
--------------------------------------------------------------------------------------------
#include "Server_Funcs\Listing.mf"; 7
#include "Server_Funcs\Server_Listing.inc"; 7
If $vData[1] = "List" Then _Listing($vData[2]); 7
--------------------------------------------------------------------------------------------
Для удобства, строки, которые принадлежат одной функции пронумерованы. В примере они имеют номер 7.
Строки с номером 0 в конце не следует отключать, т.к. они неоходимы серверу.
=========================================================================================
=========================================================================================
=========================================================================================
Неиспользуемые функции (КЛИЕНТ)
Сервер собран так, что Вы можете отключать (закомментировать) функции, которые Вы не будете использовать. А можете просто не добавлять их вообще.
Например, Вам не нужна функция Listing (получение клиентом списка файлов и папок сервера) и Вы хотите отключить ее.
Для этого Вам нужно либо закомментировать строку
#include "Client_Funcs\Listing.inc"; 7
, либо, вообще не включать ее в свой скрипт.
Как и в случае с сервером, все функции пронумерованы.
Строки с номером 0 в конце не следует отключать, т.к. они неоходимы клиенту.
=========================================================================================
=========================================================================================
=========================================================================================
Дополнительная информация о клиенте.
Клиентская часть этого "Рабочего примера" построена в виде отдельных функций. Для каждой функции используется один файл.
Вы можете включить файлы из папки "Client_Funcs" в свой скрипт как обычные UDF.
***********************************************************************************************************************************************
Автор: Astel064
Версия: 1.0
Выход: 18:32 30.08.2014
Файл: TcpServer.7z (во вложениях)
История версий:
1.0 (30.08.2014)
К.1.1 (05.09.2014): расширено логирование событий
К.1.1 (05.09.2014): расширено логирование событий
Источник: autoit-script.ru
Автор: Astel064
Не спорю, довольно далековато до идеала, но я надеюсь, что кроме меня это будет кому-либо еще полезно.