• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Снимаем Snapshot-ы с камер Dahua (Pillow, requests)

rand

CooL-Lamer
Эксперт
Регистрация
24.05.2023
Сообщения
581
Реакции
1 152
Депозит
0.07 Ł и др.
Всем привет, возможно кому-то пригодится скрипт для снятия снэпшотов с IP камер Dahua и их сохранением.

Используемая версия Python: 3.10

Устанавливаем библиотеки:
Код:
pip install Pillow
pip install requests

Python:
import time
import requests
import datetime
from PIL import Image
from io import BytesIO
from requests.auth import HTTPDigestAuth


def DahuaSnapshot():
    # Получаем дату и время
    data_time = str(datetime.datetime.now())
    # Заменяем в строке подстроки с : на - для передачи строки в сохранение имени файла
    data_timing = data_time.replace(":", "-", 2)

    
    # Поднимаем сессию на видеорегистраторе
    url = "http://192.168.0.2/cgi-bin/snapshot.cgi"
    # Сессия на Dahua поднимается методом Digest аутентификации
    auth = HTTPDigestAuth('admin', 'admin')
    response = requests.get(url, auth=auth)

    if response.status_code == 200:
        # Открываем изображение через класс io.BytesIO() реализация потока, использующая буфер байтов в памяти.
        image = Image.open(BytesIO(response.content))
        # Сохраняем изображения в корень скрипта
        image.save(f"C:/Dahua-Snapshot/output/{data_timing}.jpg")
        print(f"Изображение сохранено: {data_timing}.jpg")
    else:
        print(f" Ошибка загрузки изображения, код ошибки: {response.status_code}")

#Вызываем бесконечным циклом функцию и отрабатываем исключения
while True:
    try:
        DahuaSnapshot()
        # Выставляем задержку в цикле 60 секунд
        time.sleep(60)
    except requests.exceptions.ConnectionError:
        print("Произошла ошибка соединения, пробую переподключиться")
        continue
    except KeyboardInterrupt:
        print("Скрипт остановил свою работу")
        break
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх