/ домой \ | \ темы / |
02/03/2007 19:42 JlblC2: |
Пишу такой батник: @echo off echo Content-type: text/html echo. echo. echo пингую вас... %REMOTE_ADDR% ping.exe -a -n 1 %REMOTE_ADDR% вызываю его <!--#exec cgi="1ping.bat" --> все работает хорошо, только вывод Ping (и других прог) в dos-кодировке можно-ли что-нибудь сделать? |
03/03/2007 01:47 Max: |
Так пишите текст в той кодировке в которой вы хотите его чтобы он выводился. если внутри самого пинга есть текст в досовской кодировке, то можно только отредактировать бинарный файл, -- найти все русские слова и заменить их. Или возьмите ping от английских виндов. Сервер сам не будет перекодировать, но можно запусстить через скрипт который будет перекодировать выывод. |
02/03/2008 02:46 Byuik: |
Max: научи пожалуйста как написать EXE приложение для CGI Ну ламмер я не знаю как это зделать... |
02/03/2008 20:54 Max: |
Это обычное консольное или даже GUI приложение. GUI функции использовать смысла нет. Но скомпилировано оно может быть как GUI. Вы можете писать выходной поток, например сишной функцией printf -- и это передается в браузер пользователя. Хотите использовать Win API -- Получите стандартные хендлы с помощью GetStdHandle и пишите/читайте через WriteFile/ReadFile Получить переменную окружения можно API функцией GetEnviromentString В остальном суть получения запроса, возврата страницы такая же как в любом привычном для вас CGI-приложении. В интернете есть множество примеров и на Си и порядок обмена данными вы можете посмотреть в перловых скриптах. |
03/03/2008 02:30 Byuik: |
Max о спасибо , я разобрался , теперь могу писать очень быстрые и оригинальные CGI для WIN серверов. Ещё раз большое спасибо. |
27/02/2009 17:47 Talker: |
Здравствуйте! Простите ламера, подскажите про CGI - я так понял в принципе CGI-скриптами могут выступать и BAT-файлы и обычные консольные EXE-шники. 2 ламерских вопроса: 1. нужно ли им менять расширение на .CGI? 2. что писать в адресной строке чтобы вызвать на исполнение написанный CGI-скрипт (bat-ник)? Я в каталог \cgi-bin\ положил файл 1.bat с содержимым: "echo HELLO!" пишу в адресной строке Оперы: "localhost/cgi-bin/1.bat", получаю просто чистое белое окно Если 1.bat положить скажем в корень (C:\shttps\www\), то Опера просто предлагает скачать файл. Подскажите, пожалуйста как сделать чтобы 1.bat запустился как CGI-скрипт? |
27/02/2009 17:48 Talker: |
пишу в адресной строке Оперы: "localhost / cgi-bin / 1.bat"
|
27/02/2009 22:16 Zhenia: |
переименовывать не надо должно быть так @echo off echo Content-type: text/plain echo (пустая строка обязательно!) echo HELLO! Не помню как пустая строка делается,просто есно не работает, но смысл такой. |
27/02/2009 22:43 Zhenia: |
Вспомнил , чтоб была пустая строка, надо после эхо писать точку(ECHO.)
|
28/02/2009 00:21 Tester: |
JlblC2, можно поставить в .htm откуда вызываешь строку <META http-equiv="content-type"; content="text/html; charset=CP866">. Или в самом bat-файле сменить кодировку: "chcp 1251" или какая она там у тебя. Кстати, проблема в нехватке знаний та же, что и у Talker'a. Гуглил, но примеров запуска батника как cgi не нашлось. Так что присоединяюсь к вопросу. Если вызвать 1.bat через html (<!--#exec cgi="1.bat" -->), тоже имеем просто чистый экран. |
02/03/2009 09:25 Talker: |
|
13/03/2009 15:13 Max: |
При запуске тегом <!--#exec cgi= сервер подставляет подкаталог образованный из cgi идентификатора. Вы можете использовать <!--#exec cmd= или <!--#include virtual= -- если включаемый файл идентифицируется как CGI |
13/03/2009 21:18 Tester: |
Кажется, разобрался. Talker, чистое белое окно как раз означает, что скрипт запустился успешно. В моем случае подлость заключалась в том, что в строку "echo. " закрался пробел после точки, или какой-то символ переноса. При прямом копировании из браузера он появляется. test.bat: @echo off echo Content-type: text/html echo. echo Привет. Запуск Link temporary removed соответственно. |