Я пытаюсь настроить веб-сервер, используя только пакетные скрипты Windows.Как отвечать условно на основе запроса при использовании netcat
Я уже придумал следующий сценарий:
@echo off
@setlocal enabledelayedexpansion
for /l %%a in (1,0,2) do (
type tempfile.txt | nc -w 1 -l -p 80 | findstr mystring
if !ERRORLEVEL! == 0 (
echo found > tempfile.txt
) else (
echo not-found > tempfile.txt
)
)
Однако ответ всегда один запрос позади, я имею в виду, если я типа что-то вроде этого в браузере:
REQUEST: localhost/mystring
я получаю следующий ответ:
RESPONSE: not-found
только в следующем запросе я буду получать корбанк ect для запроса, представленного выше.
Это происходит потому, что как только netcat получает запрос, он отвечает текущим содержимым файла tempfile.txt, который еще не обновлен на основе запроса.
Есть ли способ заблокировать ответ до обновления tempfile.txt или любого другого метода, который достигнет ожидаемого результата?
Вы перезаписать содержимое 'TempFile .txt' с строкой «найден» или «не найден»; ваш код не должен работать вообще. – SomethingDark
@SomethingDark Я считаю, что это было намеренно. Они не предназначены для ведения журналов. Они предназначены для содержания HTTP-контента. То, что задает OP, - это как сделать вывод вывода «nc» TCP на основе содержимого заголовка запроса браузера. – rojo
@rojo - он переписывает файл, который он передает в netcat. У Netcat должны быть проблемы с рвотой влево и вправо. – SomethingDark