Что такое onvif протокол?
Содержание:
- Getting Started
- Как включить ONVIF на камерах AXIS?
- Создание общего стандарта безопасности для IP камер
- Changelog
- Other examples
- ONVIF или PSIA
- Создание стандарта для цифровой камеры
- 2021: Создание стандарта Profile M
- Возможные проблемы, которые могут возникнуть при совместимости
- Как CMS ищет камеры
- Hikvision DS-2CD8153F-E (Onvif 2.02)
- Заключение
Getting Started
Initialize an ONVIFCamera instance
from onvif import ONVIFCamera mycam = ONVIFCamera('192.168.0.2', 80, 'user', 'passwd', '/etc/onvif/wsdl/')
Now, an ONVIFCamera instance is available. By default, a devicemgmt service is also available if everything is OK.
So, all operations defined in the WSDL document:
/etc/onvif/wsdl/devicemgmt.wsdl
are available.
Get information from your camera
# Get Hostname resp = mycam.devicemgmt.GetHostname() print 'My camera`s hostname: ' + str(resp.Name) # Get system date and time dt = mycam.devicemgmt.GetSystemDateAndTime() tz = dt.TimeZone year = dt.UTCDateTime.Date.Year hour = dt.UTCDateTime.Time.Hour
Configure (Control) your camera
To configure your camera, there are two ways to pass parameters to service methods.
Dict
This is the simpler way:
params = {'Name': 'NewHostName'} device_service.SetHostname(params)
Type Instance
This is the recommended way. Type instance will raise an
exception if you set an invalid (or non-existent) parameter.
params = mycam.devicemgmt.create_type('SetHostname') params.Hostname = 'NewHostName' mycam.devicemgmt.SetHostname(params) time_params = mycam.devicemgmt.create_type('SetSystemDateAndTime') time_params.DateTimeType = 'Manual' time_params.DaylightSavings = True time_params.TimeZone.TZ = 'CST-8:00:00' time_params.UTCDateTime.Date.Year = 2014 time_params.UTCDateTime.Date.Month = 12 time_params.UTCDateTime.Date.Day = 3 time_params.UTCDateTime.Time.Hour = 9 time_params.UTCDateTime.Time.Minute = 36 time_params.UTCDateTime.Time.Second = 11 mycam.devicemgmt.SetSystemDateAndTime(time_params)
Use other services
# Create ptz service ptz_service = mycam.create_ptz_service() # Get ptz configuration mycam.ptz.GetConfiguration() # Another way # ptz_service.GetConfiguration()
Or create an unofficial service:
xaddr = 'http://192.168.0.3:8888/onvif/yourservice' yourservice = mycam.create_onvif_service('service.wsdl', xaddr, 'yourservice') yourservice.SomeOperation() # Another way # mycam.yourservice.SomeOperation()
Как включить ONVIF на камерах AXIS?
Камеры AXIS являются устройствами, совместимыми с ONVIF, что означает, что они могут работать с видеорегистраторами других производителей.
Однако по умолчанию в камерах AXIS протокол ONVIF отключен. Его необходимо включить вручную, чтобы добавить камеру в программное обеспечение для управления камерой.
В этом руководстве мы шаг за шагом продемонстрируем, как найти IP-адрес камеры AXIS и как включить функцию ONVIF.
Прежде всего, вам нужно найти IP-адрес камеры. Вы можете использовать различные инструменты для сканирования локальной сети и определения IP-адреса камеры (через ПК).
Во-вторых, вам необходимо получить доступ к камере через веб-браузер, а затем включить функцию ONVIF в настройках.
При настройке IP-камеры пользователь должен знать IP-адрес камеры, чтобы подключиться к ее веб-интерфейсу, и добавить его в программное обеспечение для управления камерой или NVR.
Большинство производителей камер поставляются с поисковиком IP-адресов, который представляет собой программный инструмент для обнаружения.
С его помощью можно определить местоположения камеры в сети, определив ее IP-адреса, номер модели и другую сетевую информации.
AXIS использует два инструмента для определения IP-адреса камеры: инструмент AXIS IP Utility или инструмент AXIS Device Manager. Кликните по этой ссылке, чтобы перейти на страницу загрузки с официального сайта AXIS.
Кроме того, если вы знаете данные для входа в систему по умолчанию, диспетчер устройств ONVIF (ODM) — еще один инструмент обнаружения, который можно использовать для обнаружения и идентификации совместимых с ONVIF устройств в локальной сети.
Шаги довольно простые. Загрузите инструменты с веб-сайта AXIS, установите программное обеспечение на свой компьютер или ноутбук и запустите его.
По сути, этот инструмент сканирует сеть и перечисляет IP-адреса найденных камер AXIS. Камеру необходимо подключить к внешнему коммутатору PoE или маршрутизатору. Он не будет обнаружен, если он подключен к встроенному переключателю PoE сетевого видеорегистратора.
В программном обеспечении есть кнопка сканирования, нажмите ее и подождите несколько минут, пока инструмент не просканирует сеть. Будут перечислены все устройства AXIS с указанием IP-адреса, номера модели, MAC-адреса и т. Д.
При необходимости вы можете изменить IP-адрес (в соответствии с вашей сетью). Например, если IP-адрес вашего маршрутизатора 192.168.1.1, тогда IP-адрес камеры необходимо изменить на 192.168.1.XXX (где XXX — случайное число от 2 до 254). Например, установите IP-адрес камеры 192.168.1.100.
Итак, вы знаете IP-адрес камеры. Переходим к следующему шагу. Для этого откройте веб-браузер (Internet Explorer, Mozilla Firefox и т.д.) и введите IP-адрес камеры в адресную строку. Вы увидите экран входа в систему камеры.
Введите пароль камеры. Вы можете попробовать пароль по умолчанию или тот, который вы установили для своей камеры. Кроме того, вы можете обратиться к руководству камеры AXIS, чтобы получить информацию по умолчанию.
Если вы все еще используете пароль камеры по умолчанию, вам может быть предложено изменить пароль камеры.
После входа в систему вы должны увидеть настройки камеры. Выберите меню « Параметры системы», а затем выберите меню ONVIF . Нажмите кнопку «Добавить», чтобы добавить новую учетную запись ONVIF (пользователя).
Чтобы создать профиль ONVIF для использования с большинством записывающих устройств независимо от производителя, мы рекомендуем следующие настройки:
- Имя пользователя: admin
- Пароль: ваш пароль
- Подтверждение: еще раз ваш пароль
- Уровень: Администратор
Нажмите кнопку ОК, чтобы добавить новый профиль ONVIF. Новый профиль ONVIF отобразится в списке пользователей.
Нажмите кнопку «Сохранить», чтобы применить изменения. При необходимости вы можете создать несколько учетных записей ONVIF, если собираетесь использовать камеру для двух или более записывающих устройств.
Обладая информацией ONVIF, вы можете добавить камеру AXIS к любому сетевому видеорегистратору или программному обеспечению для управления камерой, которое поддерживает устройства ONVIF.
Вы можете добавить его, введя IP-адрес камеры, имя пользователя, пароль, а иногда и порт ONVIF, которым обычно является порт 80.
2021-07-21T14:59:33+03:0021, Июль, 2021|Настройка видеонаблюдения|
Создание общего стандарта безопасности для IP камер
В 2008 году компании Sony, Bosch и Axis разработали стандарт под названием Open Network Video Interface Forum (ONVIF). Данный стандарт призван решить проблему несовместимости оборудования различных производителей для упрощения создания системы видеонаблюдения на базе IP камер. Протокол ONVIF имеет стандартизированный цифровой интерфейс оборудования для видеонаблюдения, и объединяет в себе такие аспекты взаимодействия оборудования, как:
- Сжатие и передача видео- и аудиопотока;
- Настройка потоковой передачи видеоданных;
- Видеоаналитика;
- Обнаружение IP-устройств;
- Регулирование профилей работы камеры;
- Управление поворотными камерами (PTZ);
- Входы и выходы для подключения тревожных датчиков;
- Обнаружение движения;
- Защита и контроль доступа (шифрование и т. д.).
В процессе развития ONVIF претерпел некоторые изменения и сегодня имеет много стандартных версий:
- ONVIF 1.0 – 2008г;
- ONVIF 2.0 – 2010г;
- ONVIF 2.2 – 2012г;
- ONVIF 2.4 – 2013г;
- ONVIF 2.5 – 2014г.
Changelog
- 0.6.5 Add MEDIA2 support, Profile T and GetServices XAddrs support for H265 cameras. Add support for HTTPS. Add Discovery.on(‘error’) to examples. Add flag to only send Zoom, or only send Pan/Tilt for some broken cameras (Sony XP1 Xiongmai). Fix bug in GetServices. Improve setNTP command. API changed on getNetworkInterfaces and other methods that could return an Array or a Single Item. We now return an Array in all cases. Add example converting library so it uses Promises with Promisify. Enable 3702 Discovery on Windows for MockServer. Add MockServer test cases)
- 0.6.1 Workaround for cams that don’t send date-time
- 0.6.0 Refactor modules for proper import in electron-based environment
- 0.5.5 Added ptz., ptz.. Fixed exceptions in ptz. and utils.. Added tests for ptz., ptz., ptz., and ptz..
- 0.5.4 Bumped for NPM.
- 0.5.3 Some fixes. Tests
- 0.5.2 property for NAT devices, discovery with multiple network interfaces (@Climax777)
- 0.5.1 Critical bugfix in SOAP-auth for some cams
- 0.5.0 Profile G support (@RogerHardiman), proper SOAP auth, nodejs support >= 0.12
- 0.4.2 Bugfixes
- 0.4.1 Improved discovery (@sousandrei, @RogerHardiman)
- 0.4.0 Encoder support (@chriswiggins), Imaging service (@EastL)
- 0.3.1 EventEmitter-based events
- 0.3.0 Refactoring, documentation, event service basics
- 0.2.7 WS-Discovery
Other examples
- example.js — Move camera to a pre-defined position then server the RTSP URL up via a HTTP Server. Click on the RTSP address in a browser to open the video (if you have the VLC plugin installed)
- example2.js — takes an IP address range, scans the range for ONVIF devices (brute force scan) and displays information about each device found including make and model and RTSP URLs
For Profile S Cameras and Encoders it displays the default RTSP address
For Profile G Recorders it displays the RTSP address of the first recording - example3.js — reads the command line cursor keys and sends PTZ commands to the Camera
- example4.js — uses Discovery to find cameras on the local network
- example5.js — connect to a camera via SOCKS proxy. Note SSH includes a SOCKS proxy so you can use this example to connect to remote cameras via SSH
- example6.js — subscribes to ONVIF Events from a camera
- example7.js — example using a Promise API. It uses ‘promisify’ to conver the ONVIF Library to return promises
ONVIF или PSIA
Public Security Investigative Agency (PSIA) – это еще один стандарт, позволяющий решить проблемы несовместимого оборудования.
Он используется для техники, производящей IP-видеонаблюдение, такой как:
- камеры;
- датчики;
- системы контроля и управления доступом;
- устройства для видеоаналитики и управления информационной защитой.
Компании, входящие в членство ONVIF, заняли около 60% рынка продукции для видеонаблюдения во всем мире. Техника, работающая со стандартами PSIA, занимает лишь 20% этой сферы.
Open Network Video Interface Forum при разработке стандартов держит фокус на IP-видео. В эту сферу входит аналитика и интерфейс между видеоустройством и клиентом. Спецификация включает PTZ-протокол, обнаружение технических средств, их регулировку, фиксацию событий, анализ видео и настройки видеопотока в реальном времени. На что PSIA отвечает определением более общей специфики, которая подходит для систем хранения и контроля доступа.
Несмотря на то, что производители оборудования утверждают, что оно совместимо со стандартом ONVIF, иногда возникают определенные проблемы
Компании производители техники могут применять стандарт ONVIF в профессиональной видеотехнике, где требуется аналитика и взаимодействие камер. PSIA более всего подходят для фирм, которым нужно контролировать PTZ-устройства и прочие сервисы, например, PSIM и системы хранения.
Структурная модель представленных стандартов также имеет лишь небольшие различия. Производитель может применять к выпускаемым камерам одновременно ONVIF и PSIA, так как требования к сетевым устройствам стали преимущественно логическим стандартом, а не физическим. Так, например, компании Cisco и Milestone, выпускающие сетевое оборудование, включают в свою продукцию поддержку обеих спецификаций. К ним в этом плане собирается присоединиться и компания EInfochips, занимающаяся разработкой DVR/NVR-устройств, управляющего программного обеспечения и камер.
Создание стандарта для цифровой камеры
Аналоговые системы видеоконтроля отошли на второй план, уступив дорогу бюджетным китайским устройствам – видеорегистраторам и цифровым камерам. Владельцу таких устройств не помешает вооружиться некоторыми знаниями. В этой статье мы затронем актуальную тему совместимости новомодных продуктов.
Еще не так давно этот процесс казался сложным, витиеватым или совершенно невозможным. Почему так происходило?
Решением данного вопроса послужил протокол под названием ONVIF. За его разработку взялись сразу три крупных компании – Bosh, Sony и Axis. Протокол ONVIF появился в 2008 году, и сразу же решил проблему несовместимости различных гаджетов. Владельцы IP-камер смогли выдохнуть с облегчением.
Самое интересное, что по аналогии с названием стандартного протокола нарекли целую организацию международного типа.
Кто может стать членом организации:
- Разработчики ПО;
- Компании-производители;
- Системные интеграторы;
- Пользователи продукта и другие.
Вернемся к обсуждению протокола. По своей функциональности он отдаленно напоминает API производителей устройств. Ключевая задача ONVIF заключается в стандартизации базового функционала гаджета. С его появлением многое стало доступнее и проще.
Теперь покупатель не тратит уйму времени на выбор и поиски оборудования от одного производителя. Он может купить то, что ему нравится или приходится по карману, не обращая особого внимания на марку производителя. Разработка стандартного протокола сделала рынок еще более популярным и доступным.
До 2016 года версии протокола отличались между собой цифрами. Например, версия 2.4. Позже появились профили ONVIF. На сегодняшний день пользователям доступны 5 готовых профилей, и еще 1 профиль, находящийся на этапе диагностики. И хотя он доступен для использования, разработчики считают этот продукт «сырым», а поэтому продолжают исправлять различные баги.
2021: Создание стандарта Profile M
22 июля 2021 года стало известно о том, что компания ONVIF разработала стандарт Profile M. Он предназначен для рынка облачной видеоаналитики, а также расширяет возможности использования метаданных и обработки сведений в других системах безопасности, таких как контроль доступа, облачные сервисы и платформы Интернета вещей.
Profile M обеспечивает стандартный способ обмена метаданными и событиями между службами с аналитическими возможностями и устройствами, такими как IP-камеры видеонаблюдения, программным обеспечением для управления видеопотоком, а также серверными или облачными сервисами. Данный профиль позволяет интеграторам и конечным пользователям гибко комбинировать решения от разных поставщиков периферийных устройств или сервисов, которые создают метаданные и события, с ПО для видеонаблюдения или облачными сервисами и приложениями IoT в одной системе безопасности.
ONVIF осознает, что потребность в функциональной совместимости вышла за рамки традиционных отношений между аппаратным устройством и программным клиентом от разных поставщиков. Гибкость подключения облачных и серверных сервисов в качестве «совместимых устройств» делает Profile M интересным также для независимых разработчиков программных аналитических решений. Это поможет стимулировать рост количества и типов приложений для обеспечения безопасности, — рассказал Шрирам Бхетанаботтла, председатель рабочей группы Profile M. |
Так, для систем видеонаблюдения Profile M можно использовать для выделения конкретных объектов в видеопотоке, запуска автоматических ответов, а также для хранения и поиска интересующего видеоконтента. Profile M также поддерживает интерфейсы обработки событий для подсчета объектов и аналитики распознавания лиц / автомобильных номеров, а также событий в формате JSON через MQTT, протокол для приложений Интернета вещей.
Примером варианта использования IoT может быть контроль температуры в помещении, где камера видеонаблюдения Profile M (с поддержкой MQTT) обнаруживает людей в комнате и отправляет событие ONVIF через MQTT на платформу или приложение, которое, в свою очередь, запускает устройство для регулировки температуры в помещении.
Profile M можно комбинировать с другими профилями видеонаблюдения ONVIF и контроля доступа для интегрированной системы безопасности на основе интерфейсов ONVIF.
Возможные проблемы, которые могут возникнуть при совместимости
Все производители единогласно утверждают, что проблем с совместимостью у реализуемой ими продукции не возникнет. Несмотря на это, при создании систем IP-видеонаблюдения можно столкнуться с определенными трудностями.
Одна из проблем – при монтаже, настройке камер для IP-наблюдения обнаруживается, что используемый видеорегистратор их не видит. Все устройства находятся в общей локальной сети, а датчики движения и иные программные функции напрочь отказываются выполнять возложенные функции. Сразу же возникает вопрос: «В чем причина сбоя?».
Трудности могут быть связаны с разнообразными причинами. Первоначально требуется удостовериться, что используемое оборудование поддерживает стандарт Open Network Video Interface Forum (ONVIF). Среди производителей встречаются мошенники. Они отмечают в своих продуктах поддержку протокола, но на самом деле это совсем не так. Чтобы исключить вероятность возникновения такого рода проблем, лучше приобретать оборудование у тех фирм-изготовителей, которые являются официальным представителем ONVIF. Эту информацию можно найти в сети.
Устройства, которые входят в систему IP-видеонаблюдения, могут быть несовместимы из-за использования различных профилей протокола. Одной поддержки ONVIF недостаточно. Это не указывает на то, что применяемое оборудование будет синхронизироваться. В данном случае вам потребуется убедиться, что приборы рассчитаны на работу с Profile S. Этот профиль является универсальным. Он позволяет совместить между собой различные версии ONVIF.
Протокол ONVIF осуществляет работу по стандартизации сетевого оборудования, существенно упрощает монтаж и расширяет возможности IP-систем безопасности. С помощью такого стандарта облегчается масштабируемость систем, открываются новые возможности для потребителя при выборе требуемого оборудования.
ONVIF имеет собственное программное обеспечение, которое позволяет раскрыть весь функционал используемого оборудования. Спецификация позволяет осуществлять поиск и выполнить подключение устройств, управлять телеметрией, передавать и записывать видео, настраивать изображения, проводить видеоаналитику в максимально сжатые сроки. ONVIF существенно увеличивает производительность оборудования.
Другие статьи:
-
- Какие бывают пылесосы и как их выбирать
- Процесс изготовления элементов электроники
- Тепловизионные камеры видеонаблюдения
- Тепловизионные камеры видеонаблюдения
Как CMS ищет камеры
Рассмотренная в предыдущей статье программа ONVIF Device Manager и CMS быстро обнаруживают IP камеры при этом даже не спрашивая настройки сети. Поверхностный анализ показал, что они не сканируют IP и порты в локальной подсети, тогда как они это делают?
Запустим Wireshark и запустим в CMS поиск новых устройств. Когда поиск завершится, остановим захват трафика Wireshark.
Запросов оказалось мало и почти все они были однокипными. Первый тип запросов выполнялся несколько раз подряд на UDP порт 34569 IP адреса 255.255.255.255 передавалась шестнадцатеричная строка «ff00000000000000000000000000fa0500000000». Хотя, пожалуй, правильнее её записать так: «\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x05\x00\x00\x00\x00».
Адрес 255.255.255.255 является ограниченным . Такой пакет доставляется всем хостам в данной локальной сети, но за пределы локальной сети не маршрутизируется.
Второй тип запросов выполнялся только один раз на UDP порт 3702 IP адреса 239.255.255.250.
Адрес 239.255.255.250 — это multicast адрес, то есть используется для .
Передаются следующие данные:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:dn="http://www.onvif.org/ver10/network/wsdl" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery"><SOAP-ENV:Header><wsa:MessageID>urn:uuid:00000029-5566-7788-99aa-2a3f00125c87</wsa:MessageID><wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:To><wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</wsa:Action></SOAP-ENV:Header><SOAP-ENV:Body><d:Probe><d:Types>dn:NetworkVideoTransmitter</d:Types><d:Scopes></d:Scopes></d:Probe></SOAP-ENV:Body></SOAP-ENV:Envelope>
Как можно догадаться, это знакомый нам протокол ONVIF. Не будем в этой статье останавливаться на этом протоколе, просто запомним, что для поиска ONVIF необязательно делать сканирование подсети — можно использовать широковещательный адрес и протокол SSDP.
Посмотрим на ответы, которые прислала камера. Для Polyvision это:
Для ONVIF:
На первый взгляд, данные нечитаемые, возможно, бинарные или зашифрованные. По крайней мере, Wireshark не опознала в них никакие протоколы.
Hikvision DS-2CD8153F-E (Onvif 2.02)
- Подключимся к камере
- Определим сервис
- Получим информацию об устройстве
- Посмотрим и установим системное время
- Перезагрузим камеру
from onvif import ONVIFCamera, ONVIFService, ONVIFError camera = ONVIFCamera('192.168.0.112', 80, u'admin', u'password', u'onvif_camerasenvwsdl') response = camera.devicemgmt.GetDeviceInformation() response (reply){ Manufacturer = "HIKVISION" Model = "DS-2CD8153F-E" FirmwareVersion = "V4.0.1 build 120508" SerialNumber = "DS-2CD8153F-E0120120914BBRR411180126" HardwareId = "88" }
Посмотрим все сервисы
response = camera.devicemgmt.GetServices({'IncludeCapability' True}) [(Service){ Namespace = "http://www.onvif.org/ver10/device/wsdl" XAddr = "http://192.168.0.112/onvif/device_service" Version = (OnvifVersion){ Major = 1 Minor = 3 } }, (Service){ Namespace = "http://www.onvif.org/ver10/media/wsdl" XAddr = "http://192.168.0.112/onvif/Media" Version = (OnvifVersion){ Major = 1 Minor = 3 } }, (Service){ Namespace = "http://www.onvif.org/ver10/events/wsdl" XAddr = "http://192.168.0.112/onvif/Events" Version = (OnvifVersion){ Major = 1 Minor = 4 } }, (Service){ Namespace = "http://www.onvif.org/ver20/ptz/wsdl" XAddr = "http://192.168.0.112/onvif/PTZ" Version = (OnvifVersion){ Major = 2 Minor = 1 } }, (Service){ Namespace = "http://www.onvif.org/ver20/imaging/wsdl" XAddr = "http://192.168.0.112/onvif/Imaging" Version = (OnvifVersion){ Major = 2 Minor = 1 } }, (Service){ Namespace = "http://www.onvif.org/ver10/deviceIO/wsdl" XAddr = "http://192.168.0.112/onvif/DeviceIO" Version = (OnvifVersion){ Major = 1 Minor = 1 } }]
Так же можно определить отдельный сервис, что гораздо быстрее и посмотреть все сервисы аналогично
management_service = ONVIFService('http//192.168.0.112/onvif/media', u'admin', u'password', '/onvif_cameras/env/wsdl/devicemgmt.wsdl') services = management_service.GetServices({'IncludeCapability' True})
Посмотрим системное время на камере
response = camera.devicemgmt.GetSystemDateAndTime() response (SystemDateTime){ DateTimeType = "NTP" DaylightSavings = False TimeZone = (TimeZone){ TZ = "CST-8:00:00" } UTCDateTime = (DateTime){ Time = (Time){ Hour = 8 Minute = 26 Second = 23 } Date = (Date){ Year = 2015 Month = 1 Day = 10 } } LocalDateTime = (DateTime){ Time = (Time){ Hour = 12 Minute = 26 Second = 23 } Date = (Date){ Year = 2015 Month = 1 Day = 10 } } }
Установим время через словарь или через определение объекта времени. Второй вариант при установке времени если будет задан неверный аттрибут вызовет ошибку, что очень удобно.
import datetime time_dict = { 'UTCDateTime' datetime.datetime.now() } camera.devicemgmt.SetSystemDateAndTime(time_dict)
или определим объект времени
time_object = camera.devicemgmt.create_type('SetSystemDateAndTime') time_object.DateTimeType = 'Manual' time_object.DaylightSavings = True time_object.TimeZone = 'CST-80000' time_object.UTCDateTime.Date.Year = 2015 time_object.UTCDateTime.Date.Month = 1 time_object.UTCDateTime.Date.Day = 10 time_object.UTCDateTime.Time.Hour = 12 time_object.UTCDateTime.Time.Minute = 26 time_object.UTCDateTime.Time.Second = camera.devicemgmt.SetSystemDateAndTime(time_object)
Перезагрузим камеру
response = camera.devicemgmt.SystemReboot()
Для написания скриптов на bash очень не плохо подходит ONVIF CLI
$ onvif-cli devicemgmt GetHostname --user 'admin' --password 'password' --host '192.168.0.112' --port 80 True: {'FromDHCP' True, 'Name' hision}
Заключение
Итак, в этой статье показан пример анализа сетевого трафика в целях обратного инженеринга. Продолжив анализ, можно получить информацию для написания собственного клиента управления камерами. Например, можно написать клиент, который вместо пароля будет использовать перехваченный хеш. Кстати, для поиска хеша пароля можно использовать следующий фильтр Wireshark:
tcp contains Admin
На самом деле, узнав название используемого протокола, удалось найти готовые реализации и даже документацию. Готовая реализация написана на Python 3, называется python-dvr.
Документация там же: https://github.com/NeiroNx/python-dvr/tree/master/doc
Утилита (или библиотека) python-dvr позволяет записывать видео с камер, делать снимки, создавать пользователей, изменять пароли и делать многие другие вещи. В плане аудита безопасности IP камер наблюдения, с помощью python-dvr можно брут-форсить учётные данные камер. Этому будет посвящена следующая статья «Как брут-форсить протокол DVR-IP, NetSurveillance, Sofia».
Статья, посвящённая python-dvr: «Как управлять камерами по протоколу DVR-IP, NetSurveillance, Sofia (NETsurveillance ActiveX плагин XMeye SDK)». В этой статье кратко говорится об использовании DeviceManager.py. Это мощная программа по обнаружению IP камер наблюдения в локальной сети. Если посмотреть исходный код, то можно увидеть все используемые техники, среди них есть и та, которую мы «раскрыли» в данной статье.
Другие статьи, посвящённые камерам наблюдения, вы найдёте по соответствующему тегу «камеры наблюдения».