| / домой \ | \ темы / |
| 02/03/2007 16: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-кодировке можно-ли что-нибудь сделать? |
| 02/03/2007 22:47 Max: |
| Так пишите текст в той кодировке в которой вы хотите его чтобы он выводился. если внутри самого пинга есть текст в досовской кодировке, то можно только отредактировать бинарный файл, -- найти все русские слова и заменить их. Или возьмите ping от английских виндов. Сервер сам не будет перекодировать, но можно запусстить через скрипт который будет перекодировать выывод. |
| 01/03/2008 23:46 Byuik: |
| Max: научи пожалуйста как написать EXE приложение для CGI Ну ламмер я не знаю как это зделать... |
| 02/03/2008 17:54 Max: |
| Это обычное консольное или даже GUI приложение. GUI функции использовать смысла нет. Но скомпилировано оно может быть как GUI. Вы можете писать выходной поток, например сишной функцией printf -- и это передается в браузер пользователя. Хотите использовать Win API -- Получите стандартные хендлы с помощью GetStdHandle и пишите/читайте через WriteFile/ReadFile Получить переменную окружения можно API функцией GetEnviromentString В остальном суть получения запроса, возврата страницы такая же как в любом привычном для вас CGI-приложении. В интернете есть множество примеров и на Си и порядок обмена данными вы можете посмотреть в перловых скриптах. |
| 02/03/2008 23:30 Byuik: |
| Max о спасибо , я разобрался , теперь могу писать очень быстрые и оригинальные CGI для WIN серверов. Ещё раз большое спасибо. |
| 27/02/2009 14: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 14:48 Talker: |
| пишу в адресной строке Оперы: "localhost / cgi-bin / 1.bat"
|
| 27/02/2009 19:16 Zhenia: |
| переименовывать не надо должно быть так @echo off echo Content-type: text/plain echo (пустая строка обязательно!) echo HELLO! Не помню как пустая строка делается,просто есно не работает, но смысл такой. |
| 27/02/2009 19:43 Zhenia: |
| Вспомнил , чтоб была пустая строка, надо после эхо писать точку(ECHO.)
|
| 27/02/2009 21: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 06:25 Talker: |
|
|
| 13/03/2009 12:13 Max: |
| При запуске тегом <!--#exec cgi= сервер подставляет подкаталог образованный из cgi идентификатора. Вы можете использовать <!--#exec cmd= или <!--#include virtual= -- если включаемый файл идентифицируется как CGI |
| 13/03/2009 18:18 Tester: |
| Кажется, разобрался. Talker, чистое белое окно как раз означает, что скрипт запустился успешно. В моем случае подлость заключалась в том, что в строку "echo. " закрался пробел после точки, или какой-то символ переноса. При прямом копировании из браузера он появляется. test.bat: @echo off echo Content-type: text/html echo. echo Привет. Запуск Link temporary removed соответственно. |