ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

17.09.2015, 17:24
|
|
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме: 3882
Репутация:
0
|
|
Добра.
Хочу реализовать проект, но пока не знаю точно как.
Идея такова:
На локальном сервере\хостинге лежит сайт.
Клиент на C# раз в какое-то время берет скрин экрана и отправляет на этот сайт (Может POST запросом как-то).
На сайте он выводится.
Взять скрин, преобразовать его в byte[] я, допустим, смогу.
Вопрос: как реализовать получение\отправку файла?
Подскажите, пожалуйста, как это лучше реализовать.
Как в C# составить запрос и обработать его в PHP?
Ткните носом в методы PHP.
|
|
|

17.09.2015, 17:48
|
|
Новичок
Регистрация: 07.05.2009
Сообщений: 14
Провел на форуме: 44902
Репутация:
0
|
|
Не проще скрин каким нибудь scp отправлять в определенную папку на сервере?
|
|
|

17.09.2015, 20:43
|
|
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме: 3882
Репутация:
0
|
|
Сообщение от ZodiaX
↑
Не проще скрин каким нибудь scp отправлять в определенную папку на сервере?
Ну, возможно и проще. Вы знаете как это сделать на шарпе проще, чем POST запросом?
|
|
|

18.09.2015, 09:41
|
|
Новичок
Регистрация: 07.05.2009
Сообщений: 14
Провел на форуме: 44902
Репутация:
0
|
|
Сообщение от Lavrin
↑
Ну, возможно и проще. Вы знаете как это сделать на шарпе проще, чем POST запросом?
Вы не совсем поняли. Зачем на шарпе писать "велосипед", когда можно сделать батник из двух строк. Отправлять скрин проще тем же WinSCP ( https://winscp.net/eng/docs/commandline).
|
|
|

21.09.2015, 14:40
|
|
Познающий
Регистрация: 23.08.2005
Сообщений: 48
Провел на форуме: 58753
Репутация:
1
|
|
Если Вы уверены, что хотите именно этого, то:
Клиентская часть (C#):
Код:
Rectangle screenDimensions = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
Size s = new Size(screenDimensions.Width, screenDimensions.Height);
Bitmap screen = new Bitmap(s.Width, s.Height);
Graphics memoryGraphics = Graphics.FromImage(screen);
memoryGraphics.CopyFromScreen(0, 0, 0, 0, s);
string fileName = Path.GetTempFileName();
screen.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
WebClient fileUploader = new WebClient();
fileUploader.UploadFileAsync(new Uri("http://localhost/122/server.php"), "POST", fileName);
Серверная (PHP):
[PHP]
[COLOR="#000000"][COLOR="#007700"]
|
|
|

21.09.2015, 18:02
|
|
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме: 3882
Репутация:
0
|
|
[QUOTE="hesher"]
↑
Если Вы уверены, что хотите именно этого, то:
Клиентская часть (C#):
Код:
Rectangle screenDimensions = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
Size s = new Size(screenDimensions.Width, screenDimensions.Height);
Bitmap screen = new Bitmap(s.Width, s.Height);
Graphics memoryGraphics = Graphics.FromImage(screen);
memoryGraphics.CopyFromScreen(0, 0, 0, 0, s);
string fileName = Path.GetTempFileName();
screen.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
WebClient fileUploader = new WebClient();
fileUploader.UploadFileAsync(new Uri("http://localhost/122/server.php"), "POST", fileName);
Серверная (PHP):
[PHP]
[COLOR="#000000"][COLOR="#007700"]
|
|
|

21.09.2015, 18:05
|
|
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме: 3882
Репутация:
0
|
|
Дальше, как я понимаю, нужно создать отдельную html страничку, на которой js будет тягать из этой папки файлы и выводить. Верный ход мыслей, или можно сделать проще?
|
|
|

21.09.2015, 19:20
|
|
Познающий
Регистрация: 23.08.2005
Сообщений: 48
Провел на форуме: 58753
Репутация:
1
|
|
Сообщение от Lavrin
↑
Дальше, как я понимаю, нужно создать отдельную html страничку, на которой js будет тягать из этой папки файлы и выводить. Верный ход мыслей, или можно сделать проще?
Можно пойти несколькими путями, самый простой (но не самый оптимальный, с точки зрения нагрузки) - при обращении к файлу screens.php в той же папке, где и server.php - он производит сканирование директории картинок и выдает в формате:
Соответственно, можно либо отдельно использовать (обращаться непосредственно к нему, чтобы все картинки посмотреть), либо вставить полученный результат в нужную Вам страницу.
Код screens.php:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]PHP_EOL[/COLOR][COLOR="#007700"];[/COLOR][/COLOR]
В дальнейшем можно будет легко дописать фильтр, который будет только по определенным датам выводить и т.д.
|
|
|

21.09.2015, 20:59
|
|
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме: 3882
Репутация:
0
|
|
Да, это отлично, но я столкнулся с ещё одной проблемой. Я называл файл просто img.jpg и перед записью просто удаляю предыдущий. Меня это абсолютно утраивает, так как я хочу видеть экран в реальном времени (с интервалом в секунду). Но беда в том, что браузер запоминает имя файла, кешурует, и выводит постоянно первых, хотя после этого я пересохранил файл уже кучу раз. Как это бороть?
|
|
|

22.09.2015, 14:41
|
|
Новичок
Регистрация: 19.08.2015
Сообщений: 9
Провел на форуме: 3576
Репутация:
0
|
|
Запрет на кеширование:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]header[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"Cache-Control: no-store, no-cache, must-revalidate"[/COLOR][COLOR="#007700"]); [/COLOR][COLOR="#0000BB"]header[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"Expires: "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]date[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"r"[/COLOR][COLOR="#007700"]));[/COLOR][/COLOR]
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|