Приветствую, дорогое сообщество!
Регик Dahua DHI-NVR2104-P-I2
Камера Dahua DH-IPC-HFW2449S-S-IL
Документация DAHUA_HTTP_API_V2.76 for ipcamtalk._com
Не получается авторизоваться. Помогите пож разобраться что я делаю не так.
Проверял и на камере, и на регистраторе - результат один.
Задача: получить время о регика или камеры.
/cgi-bin/global.cgi?action=getCurrentTime
Делаю первый запрос и получаю ответ
Digest realm="Login to 2bc9b39c8a5db985597903ab6713a743", qop="auth", nonce="8444117777", opaque=""
т.е.
DigestRealm: 2bc9b39c8a5db985597903ab6713a743
qop: auth
nonce: 8444117777
opaque:
Насколько я понял эти реквизиты создает клиент по свему усмотрению
cnonce: 0a1f1131
cn: 00000002
Считаем
HA1 = HashVal("admin:" + DigestRealm + ":" + "admin1");
HA2 = HashVal("GET:" + requeststr);
Response = HashVal(HA1 + ":" + nonce + ":" + cn + ":" + cnonce + ":" + qop + ":" + HA2);
т.е.
HA1: 774A814127C1F7CADA60C83B7DC85023
HA2: 0BF3D80D3BC05E4C9BBDEF3C92139994
Response: E29E77F74EA8E5247B20E23160F2C0A8
Делаю второй запрос, в Header помещаю
Authorization:
Digest username="admin",
realm="2bc9b39c8a5db985597903ab6713a743",
nonce="8444117777",
nc=00000001,
cnonce="0a1f1131",
uri="/cgi-bin/global.cgi?action=getCurrentTime",
qop="auth",
opaque="",
response="E29E77F74EA8E5247B20E23160F2C0A8"
Ответ снова
StatusCode: 401
и либо
Answer: Error
Invalid Authority!
либо новые реквизиты для логина типа
Digest realm="Login to 2bc9b39c8a5db98559...", qop="auth", nonce="943307...", opaque=""
Это был пример подключения к регистратору.
Если подключаться к камере, то разница лишь в формате реквизита realm
Digest realm="Login to FEEDF1F984888B9E", qop="auth", nonce="c4b97dcb-6d7e-417d-8582-d6d7ee4f34ae", opaque=""
Проверял значение realm в форматах "Login to FEEDF1F984888B9E" и в "FEEDF1F984888B9E".
С реквизитами nonce, nc и без них. Смущает конечно, что реквизит opaque всегда пустой.
Как-то так.
Регик Dahua DHI-NVR2104-P-I2
Камера Dahua DH-IPC-HFW2449S-S-IL
Документация DAHUA_HTTP_API_V2.76 for ipcamtalk._com
Не получается авторизоваться. Помогите пож разобраться что я делаю не так.
Проверял и на камере, и на регистраторе - результат один.
Задача: получить время о регика или камеры.
/cgi-bin/global.cgi?action=getCurrentTime
Делаю первый запрос и получаю ответ
Digest realm="Login to 2bc9b39c8a5db985597903ab6713a743", qop="auth", nonce="8444117777", opaque=""
т.е.
DigestRealm: 2bc9b39c8a5db985597903ab6713a743
qop: auth
nonce: 8444117777
opaque:
Насколько я понял эти реквизиты создает клиент по свему усмотрению
cnonce: 0a1f1131
cn: 00000002
Считаем
HA1 = HashVal("admin:" + DigestRealm + ":" + "admin1");
HA2 = HashVal("GET:" + requeststr);
Response = HashVal(HA1 + ":" + nonce + ":" + cn + ":" + cnonce + ":" + qop + ":" + HA2);
т.е.
HA1: 774A814127C1F7CADA60C83B7DC85023
HA2: 0BF3D80D3BC05E4C9BBDEF3C92139994
Response: E29E77F74EA8E5247B20E23160F2C0A8
Делаю второй запрос, в Header помещаю
Authorization:
Digest username="admin",
realm="2bc9b39c8a5db985597903ab6713a743",
nonce="8444117777",
nc=00000001,
cnonce="0a1f1131",
uri="/cgi-bin/global.cgi?action=getCurrentTime",
qop="auth",
opaque="",
response="E29E77F74EA8E5247B20E23160F2C0A8"
Ответ снова
StatusCode: 401
и либо
Answer: Error
Invalid Authority!
либо новые реквизиты для логина типа
Digest realm="Login to 2bc9b39c8a5db98559...", qop="auth", nonce="943307...", opaque=""
Это был пример подключения к регистратору.
Если подключаться к камере, то разница лишь в формате реквизита realm
Digest realm="Login to FEEDF1F984888B9E", qop="auth", nonce="c4b97dcb-6d7e-417d-8582-d6d7ee4f34ae", opaque=""
Проверял значение realm в форматах "Login to FEEDF1F984888B9E" и в "FEEDF1F984888B9E".
С реквизитами nonce, nc и без них. Смущает конечно, что реквизит opaque всегда пустой.
Как-то так.