Astel064
Помог мой пост, ставь +!
- Сообщения
- 276
- Репутация
- 51
- Версия AutoIt
- 3.3.6.1
- Версия
- 1.0.20.52
AutoIt: 3.3.6.1 & 3.3.8.1+
Версия: 1.0 (20:52 14.10.2017)
Категория: Интернет, Сеть
Описание: Функции для легкого создания HTTP сервера на AutoIt3
Код/Пример:
Файл: Прикреплен к сообщению. Зеркало: *тык*
Список функций:
Коментарий автора:
История версий:
UPD 06/10/2020: Почему-то слетела ссылка на скачивание UDF, поправил...
Версия: 1.0 (20:52 14.10.2017)
Категория: Интернет, Сеть
Описание: Функции для легкого создания HTTP сервера на AutoIt3
Код/Пример:
Код:
AutoItSetOption("MustDeclareVars", 1)
#include "Http SC.inc"
#include "Http SC Error.inc"
#include "GelAllIp.au3"
; Объявляем переменные
Global $aServer, $vSendData, $aBanList, $hOptimizationTimer, $fWhile
; Создаем сервер
$aServer = _HttpSC_CreateServer($aBanList, "127.0.0.1", 8080, "My server", 0, @ScriptDir&"\My Server.log")
If @Error Then Exit MsgBox(16, "CreateServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка
; Настраиваем сервер
_HttpSC_ConfigServer($aServer, 20, 2, 100)
If @Error Then
MsgBox(16, "ConfigServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка
_HttpSC_DeleteServer($aServer, $aBanList)
Exit 2
EndIF
; Запускаем сервер
_HttpSC_StartServer($aServer, $aBanList)
If @Error Then
MsgBox(16, "StartServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка
_HttpSC_DeleteServer($aServer, $aBanList)
Exit 3
EndIF
; Выводим уведомление
MsgBox(0,"StartServer","Сервер запущен. IP сервера: 127.0.0.1; порт сервера: 8080. Нажмите F1 для выхода!", 5)
$fWhile = 1
HotKeySet("{F1}", "_Exit")
$hOptimizationTimer = TimerInit(); Таймер оптимизации сервера
While $fWhile
_HttpSC_ServerHandler($aServer, $aBanList, "_GetServerFile", "_Post", "_OtherReqest", "")
Sleep(250)
If TimerDiff($hOptimizationTimer) >= 10*60*1000 Then; 10*60*1000 = 10 мин. * 60 сек. * 1000 мсек.
_HttpSC_ServerOptimization($aServer, 1); Принудительная оптимизация
$hOptimizationTimer = TimerInit(); Устанавливаем новый таймер
EndIF
Wend
HotKeySet("{F1}")
; Останавливаем и удаляем сервер
_HttpSC_DeleteServer($aServer, $aBanList)
If @Error Then MsgBox(16, "DeleteServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка
Exit
; Функция обработки GET запроса
Func _GetServerFile($sUrl, $hUserSocket, $sUserIp, $sHttpVer, $Reqest)
If $sUrl = "/" Then
$vSendData = '<head>'&@CRLF
$vSendData &= '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'&@CRLF
$vSendData &= '<title>HttpSC</title>'&@CRLF
$vSendData &= '</head>'&@CRLF
$vSendData &= '<p align="center"><font size="5"><b>HttpSC</b></font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Состояние: Успех</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Дата: '&@MDAY&"/"&@MON&"/"&@YEAR&'</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Время: '&@HOUR&":"&@MIN&":"&@SEC&'</font></p>'&@CRLF
$vSendData &= ' <form name="form1" method="post" action="post.php">'&@CRLF
$vSendData &= ' Введите текст:
'&@CRLF
$vSendData &= ' <textarea name="text" cols="80" rows="10"></textarea>'&@CRLF
$vSendData &= ' <input name="line"></input>'&@CRLF
$vSendData &= ' <input name="" type="submit" value="Отправить"/>'&@CRLF
$vSendData &= ' </form>'&@CRLF
$vSendData = _HttpSC_CreateAnswer($aServer, $vSendData, "HTTP/1.1", "200 Ok", _HttpSC_ConvertLastModifiedTime(@YEAR&"/"&@MON&"/"&@MDAY&' '&@HOUR&":"&@MIN&":"&@SEC), "text/html", "")
Return $vSendData
Else
$vSendData = '<head>'&@CRLF
$vSendData &= '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'&@CRLF
$vSendData &= '<title>HttpSC</title>'&@CRLF
$vSendData &= '</head>'&@CRLF
$vSendData &= '<p align="center"><font size="5"><b>HttpSC</b></font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Состояние: Ошибка 404</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Дата: '&@MDAY&"/"&@MON&"/"&@YEAR&'</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Время: '&@HOUR&":"&@MIN&":"&@SEC&'</font></p>'&@CRLF
$vSendData = _HttpSC_CreateAnswer($aServer, $vSendData, "HTTP/1.1", "401 Unauthorized", "", "text/html", "", "")
Return $vSendData
EndIF
EndFunc
Func _OtherReqest($hUserSocket, $sUserIp, $Reqest)
Return ""
EndFunc
Func _Post($sUrl, $hUserSocket, $sUserIp, $sHttpVer, $Reqest)
$vSendData = '<head>'&@CRLF
$vSendData &= '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'&@CRLF
$vSendData &= '<title>HttpSC</title>'&@CRLF
$vSendData &= '</head>'&@CRLF
$vSendData &= '<p align="center"><font size="5"><b>HttpSC</b></font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Состояние (POST): 200 Успех</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Дата: '&@MDAY&"/"&@MON&"/"&@YEAR&'</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">Время: '&@HOUR&":"&@MIN&":"&@SEC&'</font></p>'&@CRLF
$vSendData &= '<p align="left"><font size="3">POST данные запроса: </br>'&_HttpSC_PostReqestGetData($Reqest)&'</font></p>'&@CRLF
$vSendData = _HttpSC_CreateAnswer($aServer, $vSendData, "HTTP/1.1", "200 OK", "", "text/html", "")
Return $vSendData
EndFunc
Func _Exit()
$fWhile = 0
EndFunc
Файл: Прикреплен к сообщению. Зеркало: *тык*
Список функций:
_HttpSC_CreateServer = Создает HTTP сервер
_HttpSC_ConfigServer = Задает дополнительные настройки сервера
_HttpSC_StartServer = Запускает HTTP сервер (создает на указанных IP адресах сокеты для входящих подключений)
_HttpSC_StopServer = Останавливает HTTP сервер (удаляет все созданные сокеты на указанных IP адресах, а также отключает всех
подключенных пользователей)
_HttpSC_DeleteServer = Удаляет HTTP сервер (но перед этим выполняет функцию _HttpSC_StopServer)
_HttpSC_ServerHandler = Главный обработчик сервера: подключает пользователей, передает данные, управляет блокировкой пользователя
_HttpSC_ServerOptimization = Оптимизирует данные сервера для более быстрой работы
_HttpSC_ServerCheckIp = Проверяет, создан-ли сокет на указанном IP адресе (или на нескольких указанных в массиве IP адресах)
_HttpSC_CreateAnswer = Возвращает полный ответ (вместе с заголовком) для последующей отправки клиенту
_HttpSC_CreateBigFileAnswer = Функция используется для отправки файлов большого размера: Возвращает полный ответ (вместе с заголовком)
для последующей отправки клиенту
_HttpSC_FileGetMimeType = Возвращает MIME тип данных, полагаясь на расширение указанного файла
_HttpSC_ConvertLastModifiedTime = Конвертирует указанное время для параметра $aLastModified (функция _HttpSC_CreateAnswer
_HttpSC_ReqestParse = Получает данные для указанного заголовка полученного от клиента запроса
_HttpSC_BasicAuthenticate_GetData = Возвращает логин и пароль BASIC авторизации из указанного запроса
_HttpSC_PostReqestGetData = Получает данные указанного POST запроса полученного от клиента
_HttpSC_WhileList_Add = Добавляет в белый список (не блокируемые IP адреса) указанные IP адреса (или 1 IP адрес)
_HttpSC_WhileList_Del = Удаляет из белого списока (не блокируемые IP адреса) указанные IP адреса (или 1 IP адрес)
_HttpSC_ServerGet_BannedUsersIp = Получает список IP адресов заблокированных пользователей
_HttpSC_ServerGet_ConnUsers = Получает список сокетов и IP адресов подключенных к серверу клиентов
_HttpSC_ServerGet_ServerSockets = Получает список IP адресов и сокетов сервера, открытых для входящих подключений
__HttpSC_Encoding_URIDecode = Декодирует URL адрес
_HttpSCError_ConvertError2Text = Преобразует код ошибки в ее описание
_HttpSC_ConfigServer = Задает дополнительные настройки сервера
_HttpSC_StartServer = Запускает HTTP сервер (создает на указанных IP адресах сокеты для входящих подключений)
_HttpSC_StopServer = Останавливает HTTP сервер (удаляет все созданные сокеты на указанных IP адресах, а также отключает всех
подключенных пользователей)
_HttpSC_DeleteServer = Удаляет HTTP сервер (но перед этим выполняет функцию _HttpSC_StopServer)
_HttpSC_ServerHandler = Главный обработчик сервера: подключает пользователей, передает данные, управляет блокировкой пользователя
_HttpSC_ServerOptimization = Оптимизирует данные сервера для более быстрой работы
_HttpSC_ServerCheckIp = Проверяет, создан-ли сокет на указанном IP адресе (или на нескольких указанных в массиве IP адресах)
_HttpSC_CreateAnswer = Возвращает полный ответ (вместе с заголовком) для последующей отправки клиенту
_HttpSC_CreateBigFileAnswer = Функция используется для отправки файлов большого размера: Возвращает полный ответ (вместе с заголовком)
для последующей отправки клиенту
_HttpSC_FileGetMimeType = Возвращает MIME тип данных, полагаясь на расширение указанного файла
_HttpSC_ConvertLastModifiedTime = Конвертирует указанное время для параметра $aLastModified (функция _HttpSC_CreateAnswer
_HttpSC_ReqestParse = Получает данные для указанного заголовка полученного от клиента запроса
_HttpSC_BasicAuthenticate_GetData = Возвращает логин и пароль BASIC авторизации из указанного запроса
_HttpSC_PostReqestGetData = Получает данные указанного POST запроса полученного от клиента
_HttpSC_WhileList_Add = Добавляет в белый список (не блокируемые IP адреса) указанные IP адреса (или 1 IP адрес)
_HttpSC_WhileList_Del = Удаляет из белого списока (не блокируемые IP адреса) указанные IP адреса (или 1 IP адрес)
_HttpSC_ServerGet_BannedUsersIp = Получает список IP адресов заблокированных пользователей
_HttpSC_ServerGet_ConnUsers = Получает список сокетов и IP адресов подключенных к серверу клиентов
_HttpSC_ServerGet_ServerSockets = Получает список IP адресов и сокетов сервера, открытых для входящих подключений
__HttpSC_Encoding_URIDecode = Декодирует URL адрес
_HttpSCError_ConvertError2Text = Преобразует код ошибки в ее описание
Коментарий автора:
• Имеется файл справки Http SC.chm
• Вы имеете полное право использовать данную UDF в любых, не запрещенных законодательством целях. Вы имеете полное право вносить поправки, удалять/изменять/добавлять функции UDF на свое усмотрение. Единственная просьба: указывайте, что автор Astel064, а редактор Вы; также указывайте свою версию редактирования отдельно от моей!
• Вы имеете полное право использовать данную UDF в любых, не запрещенных законодательством целях. Вы имеете полное право вносить поправки, удалять/изменять/добавлять функции UDF на свое усмотрение. Единственная просьба: указывайте, что автор Astel064, а редактор Вы; также указывайте свою версию редактирования отдельно от моей!
История версий:
20:52 14.10.2017 - 1.0
UPD 06/10/2020: Почему-то слетела ссылка на скачивание UDF, поправил...
- Автор
- Astel064
- Источник
- Ссылка на источник
Вложения
Последнее редактирование: