# Dahua Camera Overlay Product Name

**URL:** <https://forum.inductiveautomation.com/t/dahua-camera-overlay-product-name/110211>\
**Category:** Ignition\
**Created:** [August 27, 2025, 2:06pm UTC](https://forum.inductiveautomation.com/t/dahua-camera-overlay-product-name/110211 "2025-08-27T14:06:09Z")\
**Posts on this page:** 1\
**Showing post:** 14

<div class="post-metadata">

**Author:** ![gjw\_rfg](https://avatars.discourse-cdn.com/v4/letter/g/9dc877/32.png) [@gjw\_rfg](https://forum.inductiveautomation.com/u/gjw_rfg)\
**Post date:** [August 28, 2025, 8:21am UTC](https://forum.inductiveautomation.com/t/dahua-camera-overlay-product-name/110211/14 "2025-08-28T08:21:14Z")

</div>

Here is something else I found

[Dahua API | IP Cam Talk](https://ipcamtalk.com/threads/dahua-api.77767/)

```python
import hashlib
import requests
from requests.auth import HTTPDigestAuth

# Parameters
username = "admin"
password = "autvix123456"
url = "http://192.168.1.108/cgi-bin/magicBox.cgi?action=getLanguageCaps%20HTTP/1.1"

# Get the initial challenge
response = requests.get(url, auth=HTTPDigestAuth(username, password), verify=False)

# Check if the challenge requires digest authentication
if response.status_code == 401:
    headers = response.headers
    auth_header = headers.get('www-authenticate', '')
    
    # Extract parameters from the WWW-Authenticate header
    # This parsing might need adjustment based on the actual header format
    import re
    match = re.search(r'realm="([^"]+)"', auth_header)
    realm = match.group(1) if match else ""
    match = re.search(r'nonce="([^"]+)"', auth_header)
    nonce = match.group(1) if match else ""
    match = re.search(r'qop="([^"]+)"', auth_header)
    qop = match.group(1) if match else ""
    
    # Generate HA1, HA2, and Response
    HA1 = hashlib.md5(f"{username}:{realm}:{password}".encode()).hexdigest()
    HA2 = hashlib.md5(f"GET:{url}".encode()).hexdigest()
    response_digest = hashlib.md5(f"{HA1}:{nonce}:00000001:0a4f113b:{qop}:{HA2}".encode()).hexdigest()
    
    # Send the authenticated request
    headers = {
        'Authorization': f'Digest username="{username}", realm="{realm}", nonce="{nonce}", uri="{url}", response="{response_digest}", qop="{qop}", nc=00000001, cnonce="0a4f113b"'
    }
    final_response = requests.get(url, headers=headers, verify=False)
    
    if final_response.status_code == 200:
        print("Access successful!")
        print(final_response.json())
    else:
        print(f"Failed to access the URL. Status code: {final_response.status_code}")
else:
    print(response.content)
    print(f"Failed to obtain challenge. Status code: {response.status_code}")

```

Also On the forum

[How to use digest authentication in httpBinding - Ignition - Inductive Automation Forum](https://forum.inductiveautomation.com/t/how-to-use-digest-authentication-in-httpbinding/83786/13)

---

_[View the full topic](https://forum.inductiveautomation.com/t/dahua-camera-overlay-product-name/110211)._
