Схожесть названий моделей может скрывать внутри совершенно разную софтовую начинку.
Вот скажем видите вы рядом два девайса: Orient ip-940-sh2b и ip-940-mh5b.
Сперва может показаться, что это одна серия на общей платформе и настраиваться они будут похожим образом.
А вот и нет.
Вообще у разработчиков прошивок таких устройств явно есть какая-то неизлечимая мозговая хворь, выражающаяся в упёртой приверженности такому невероятного убогому и говнищенскому стеку технологий, как связка IE-специфичных скриптов и ActiveX-компонентов. В итоге настройка такой куеты превращается в тот ещё коитус с виртуальными машинами и сетевыми мостами.
Берём, скажем, Orient ip-940-sh2b — в ИЕ выпадает JS-ошибка (виртуалка с говном всегда должна быть, когда настраиваешь таке железо), а вот в фуррифоксе неожиданно настраивается нормально без гемора. ОК.
А вот ip-940-mh5b настраивается только в убогом IE после установке кривой говно-компоненты и предоставления полных разрешений на актив-хэ, при этом сама компонента скачивается не с самой камеры, а со стороннего китайского сайта. Сайт сдохнет или будет переделан — камеру будет не настроить, ибо вспомнить название и найти именно эту хрень нужной версии будет крайне сложно. Что делать на оффлайн-объекте посреди заснеженной тайги — вопрос отдельный.
Сам интерфейс активно косит под стильный-модный-современный (на начало 2000-х), но по сути говнищще.
Самое милое, что я давно не слышу воплей на тему «да ИЕ и виндовс это стандарт, да это у всех есть, да это же истинное юзер-френдли».
Ну и как там ваш некро-говно-стандарт ? Уже и в виндовс не работает, да ?
Вообще ставить в систему левый говнософт, только чтобы настроить камеру — это полный трешачок, и абсолютно бесчеловечно.
Что при этом мешает разработчикам сделать кондовый веб-интерфейс на голом html + POST-формах, который будет работать везде — непонятно. Откройте для себя тег video и не насилуйте людям мозги. Было бы всяко прямее и надёжнее. Но нет, тут упёрность невероятного уровня маразма.
Но самый крутой секас начинается, когда камеру подобную надо настроить по удалёнке, в другой приватной локальной сети.
Делаешь ты такой SSH-форвард через -L0.0.0.0.0:8080:192.168.1.10:80, открываешь адрес в виртуалке, и видишь сообщение при логине, что устройство не найдено. Правильно, ведь просто так отправить пост-форму, как это принято — не наш путь.
Надо наворотить тонны говнокода, который сломается на первом же коннекте не из своей локалки.
Решение — запустить на удалённой стороне виртуалку с трухлявой виндой в режиме headless на соседнем хосте в локалке (хорошо, что такой был в наличии):
VBoxHeadless -s "Win-7-ie" --vrde on --vrdeproperty "TCP/Ports=3679" --vrdeproperty "TCP/Address=0.0.0.0"
порт пробросить, зайти на него по удалёнке и окуевая от тормознутости такого решения пробовать это настроить.
Ещё после логина камера попытается начать показывать видео — удалёнка через тонкие каналы в этом случае будет особо болезненной.
Как видите, не все динозавры ещё вымерли, и даже помощь от микрософта в виде выпиливания к хуям что ИЕ, что актив-хэ из последних версий шиндошс, пока всё ещё не принесла исцеления.
Естественно, виртуалку после такого надо будет зачистить откатом к изначально чистому снапшоту.
P.S. Побороть кривую камеру помог nmap.
Сканируем её адрес на предмет открытых портов:
# nmap 192.168.x.y
Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-29 21:55 MSK
Nmap scan report for 192.168.*.*
Host is up (0.83s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT STATE SERVICE
80/tcp open http
554/tcp open rtsp
8000/tcp open http-alt
8899/tcp open ospf-lite
После чего указываем порт 8899 вместо 80 или 554 в настройках сервера «Линия-8» — и это кривое поделие начинает таки слать внятный видеопоток через нестандартный порт.
Более мощная магия для поиска именно RTSP-URL в IP-камерах —
скрипт сканера портов nmap, например, найденный вот тут:
https://blog.victormendonca.com/2018/02/09/how-to-scan-for-rtsp-urls/ . Обычно такая техника применяется пентестерами для брутфорса паролей, но нам нужны сами адреса, наша задача чуть проще.
Запускаем, смотрим, радуемся:
$ nmap --script rtsp-url-brute -p 554 192.168.*.*
Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-29 21:58 MSK
Nmap scan report for 192.168.*.*
Host is up (0.00079s latency).
PORT STATE SERVICE
554/tcp open rtsp
| rtsp-url-brute:
| errors:
| rtsp://192.168.*.*/ch01.264
| rtsp://192.168.*.*/ch0_0.h264
| rtsp://192.168.*.*/ch0_unicast_firststream
...
| other responses:
| 401:
| rtsp://10.44.0.111/
| rtsp://10.44.0.111/0
| rtsp://10.44.0.111/0/video1
| rtsp://192.168.*.*/ch0.h264
...
|_ rtsp://192.168.*.*/ch001.sdp
Нас интересует нижняя часть списка, где сканер наткнулся на 401 ошибку авторизации.
Текущий скрипт не проверяет никаких логинов и паролей, так что проверять урлы придётся ручками через VLC (он умеет воспроизводить видео из RTSP-потоков.)
Впрочем, не все адреса могут быть рабочими, так что скучать не придётся =)