HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.09.2015, 17:24
Lavrin
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме:
3882

Репутация: 0
По умолчанию

Добра.

Хочу реализовать проект, но пока не знаю точно как.

Идея такова:

На локальном сервере\хостинге лежит сайт.

Клиент на C# раз в какое-то время берет скрин экрана и отправляет на этот сайт (Может POST запросом как-то).

На сайте он выводится.

Взять скрин, преобразовать его в byte[] я, допустим, смогу.

Вопрос: как реализовать получение\отправку файла?

Подскажите, пожалуйста, как это лучше реализовать.

Как в C# составить запрос и обработать его в PHP?

Ткните носом в методы PHP.
 
Ответить с цитированием

  #2  
Старый 17.09.2015, 17:48
ZodiaX
Новичок
Регистрация: 07.05.2009
Сообщений: 14
Провел на форуме:
44902

Репутация: 0
По умолчанию

Не проще скрин каким нибудь scp отправлять в определенную папку на сервере?
 
Ответить с цитированием

  #3  
Старый 17.09.2015, 20:43
Lavrin
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме:
3882

Репутация: 0
По умолчанию

Цитата:
Сообщение от ZodiaX  

Не проще скрин каким нибудь scp отправлять в определенную папку на сервере?
Ну, возможно и проще. Вы знаете как это сделать на шарпе проще, чем POST запросом?
 
Ответить с цитированием

  #4  
Старый 18.09.2015, 09:41
ZodiaX
Новичок
Регистрация: 07.05.2009
Сообщений: 14
Провел на форуме:
44902

Репутация: 0
По умолчанию

Цитата:
Сообщение от Lavrin  

Ну, возможно и проще. Вы знаете как это сделать на шарпе проще, чем POST запросом?
Вы не совсем поняли. Зачем на шарпе писать "велосипед", когда можно сделать батник из двух строк. Отправлять скрин проще тем же WinSCP (https://winscp.net/eng/docs/commandline).
 
Ответить с цитированием

  #5  
Старый 21.09.2015, 14:40
hesher
Познающий
Регистрация: 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"]
 
Ответить с цитированием

  #6  
Старый 21.09.2015, 18:02
Lavrin
Новичок
Регистрация: 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"]
 
Ответить с цитированием

  #7  
Старый 21.09.2015, 18:05
Lavrin
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме:
3882

Репутация: 0
По умолчанию

Дальше, как я понимаю, нужно создать отдельную html страничку, на которой js будет тягать из этой папки файлы и выводить. Верный ход мыслей, или можно сделать проще?
 
Ответить с цитированием

  #8  
Старый 21.09.2015, 19:20
hesher
Познающий
Регистрация: 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] 
В дальнейшем можно будет легко дописать фильтр, который будет только по определенным датам выводить и т.д.
 
Ответить с цитированием

  #9  
Старый 21.09.2015, 20:59
Lavrin
Новичок
Регистрация: 13.07.2015
Сообщений: 17
Провел на форуме:
3882

Репутация: 0
По умолчанию

Да, это отлично, но я столкнулся с ещё одной проблемой. Я называл файл просто img.jpg и перед записью просто удаляю предыдущий. Меня это абсолютно утраивает, так как я хочу видеть экран в реальном времени (с интервалом в секунду). Но беда в том, что браузер запоминает имя файла, кешурует, и выводит постоянно первых, хотя после этого я пересохранил файл уже кучу раз. Как это бороть?
 
Ответить с цитированием

  #10  
Старый 22.09.2015, 14:41
hicel
Новичок
Регистрация: 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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.