海康威视摄像头批量更改源码

  1. 更改OSD通道名称

# coding=utf-8
import os
import time
import requests
from requests.auth import HTTPBasicAuth, HTTPDigestAuth
import xml.etree.ElementTree as ET

#和监控摄像头通讯需要一个双方认可的密钥,可以随机生成
def generate_key():
    # 生成一个16字节的随机字节数组,16字节对应128位
    random_bytes = os.urandom(16)
    # 将字节数组转换成十六进制字符串
    hex_key = random_bytes.hex()
    return hex_key


#格式数据,给摄像头输出


def fun_GetIP(url):
    # 尝试使用Digest Auth登录,不是Basic Auth
    session = requests.Session()
    session.auth = HTTPDigestAuth(USERNAME, PASSWORD)  # 确保USERNAME和PASSWORD已经被定义
    
    while True:
        try:
            # 发送GET请求
            response = session.get(url,timeout=5)
            
            # 检查响应状态码
            if response.status_code == 200:
                # 将HTML转化为ElementTree对象
                ip_config = ET.fromstring(response.text)  # 使用response.text
                # 将Element转换为字符串并打印
                #xml_str = ET.tostring(ip_config, encoding='unicode')
                #print(xml_str)
                # 提取命名空间
                # 注意:命名空间的格式应该是这样的:'{http://www.hikvision.com/ver20/XMLSchema}'
                ns = {'ns': 'http://www.hikvision.com/ver20/XMLSchema'}  # 注意这里命名空间的格式
                # 查找ipv4的ipaddress
                # 根据返回的XML结构,可能需要使用ip_config
                # 并且命名空间需要正确添加到'ipAddress'前面
                ip_address = ip_config.find('.//ns:ipAddress', ns).text
                
                return ip_address
            else:
                print("Request failed with status code:", response.status_code)
                return None
        except requests.exceptions.Timeout:
            print("Connection timed out. Do you want to retry?")
            choice = input("输入1重连,输入2退出: ")
            if choice != '1':
                print("Returning to main program.")
                return None
        except Exception as e:
            print("An error occurred:", e)
            return None

def fun_New_IPAddress(url,xml_data,rebootUrl):
    # 尝试使用Basic Auth登录
    session = requests.Session()
    session.auth = HTTPDigestAuth(USERNAME, PASSWORD)
    try:
        # 发送GET请求
        response = session.get(url)
        # 发送PUT请求,更新IP地址
        time.sleep(2)
        headers = {'Content-Type': 'application/xml'}
        response = session.put(url, data=xml_data, headers=headers)
        # 检查响应状态码,确认更新是否成功
        if response.status_code == 200:
            print("\n IP更改成功!")
            response1=session.put(rebootUrl,data='', headers=headers)#重启设备
            print('重启设备------------------------------------------------')
        else:
            print(f"Failed to update OSD name. Status code: {response.status_code}")
        # 检查响应状态
        if response.status_code == 200:
            print('建立连接成功!')
        else:
            print("建立连接失败:", response.status_code)
    except Exception as e:
        print("An error occurred:", e)



if __name__=='__main__':
    #207辅楼楼顶设备间2(外)
    # 摄像头的IP地址、用户名和密码
    HOST1=input('请输入ip地址前6位不要少写最后的【点】:默认:10.25.')
    if not HOST1:
        HOST1='10.25.'
        
    USERNAME = 'admin'
    PASSWORD = 'qlyy1234'
    #跳转1:
    while 1:
        HOST2 = input('\n请输入原始ip地址最后6位(例如:27.21):\n\n')
        HOST=HOST1+HOST2
        asekey=generate_key()
        
        #url1:输出格式的地址;url2:输出OSD名字的地址,后边的密钥可以是任意值
        url1=f'http://{HOST}/ISAPI/System/Video/inputs/channels/1/overlays'
        url2=f'http://{HOST}/ISAPI/System/Video/inputs/channels/1/?security=1&iv={asekey}'
        url3=f'http://{HOST}/ISAPI/System/Network/interfaces/1'#更改ip地址
        url4=f'http://{HOST}/ISAPI/System/Network/interfaces?security=1&iv={asekey}'#获取ip地址
        rebootUrl=f'http://{HOST}/ISAPI/System/reboot'
        #获取通道名称
        OldIPAddress=fun_GetIP(url4)
        print(f'当前IP地址:{OldIPAddress}')

        HOST2=input('\n请输入新的地址后6位(例如:31.21)【q:退出】:\n\n')
        if not HOST2:
            New_IPAddress=OldIPAddress
        elif HOST2 == 'q':
            exit
        else:
            New_IPAddress=HOST1+HOST2
            
        xml_data3 = f"""
            <?xml version: "1.0" encoding="UTF-8"?>
                <NetworkInterface>
                    <id>1</id>
                    <IPAddress>
                        <ipVersion>dual</ipVersion>
                        <addressingType>static</addressingType>
                        <ipAddress>{New_IPAddress}</ipAddress>
                        <subnetMask>255.255.224.0</subnetMask>
                        <ipV6AddressingType>ra</ipV6AddressingType>
                        <DefaultGateway>
                            <ipAddress>10.25.27.254</ipAddress>
                        </DefaultGateway>
                        <PrimaryDNS>
                            <ipAddress>114.114.114.114</ipAddress>
                        </PrimaryDNS>
                        <SecondaryDNS>
                            <ipAddress>8.8.8.8</ipAddress>
                        </SecondaryDNS></IPAddress>
                </NetworkInterface>
        """
        #执行摄像头通道名称更改
        fun_New_IPAddress(url3,xml_data3,rebootUrl)

        
        
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/780580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第19天|Diffusion扩散模型

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) Diffusion扩散模型 本文基于Hugging Face&#xff1a;The Annotated Diffusion Model一文翻译迁移而来&#xff0c;同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成…

Python数据分析案例50——基于EEMD-LSTM的石油价格预测

案例背景 很久没更新时间序列预测有关的东西了。 之前写了很多CNN-LSTM&#xff0c;GRU-attention&#xff0c;这种神经网络之内的不同模型的缝合&#xff0c;现在写一个模态分解算法和神经网络的缝合。 虽然eemd-lstm已经在学术界被做烂了&#xff0c;但是还是很多新手小白或…

RAG 案框架(Qanything、RAGFlow、FastGPT、智谱RAG)对比

各家的技术方案 有道的QAnything 亮点在&#xff1a;rerank RAGFLow 亮点在&#xff1a;数据处理index 智谱AI 亮点在文档解析、切片、query改写及recall模型的微调 FastGPT 优点&#xff1a;灵活性更高 下面分别按照模块比较各框架的却别 功能模块QAnythingRAGFLowFastG…

MPC学习资料汇总

模型预测控制MPC学习资料汇总 需要的私信我~ 需要的私信我~ 需要的私信我~ 【01】课件内容 包含本号所有MPC课程的课件&#xff0c;以及相关MATLAB文档。 【02】课件源代码 本号所有MPC课程的源代码。 【03】MPC仿真案例 三个MPC大型仿真案例&#xff1a; 1&#xff09;…

力扣爆刷第160天之TOP100五连刷66-70(回溯、旋转图像、技巧题)

力扣爆刷第160天之TOP100五连刷66-70&#xff08;回溯、旋转图像、技巧题&#xff09; 文章目录 力扣爆刷第160天之TOP100五连刷66-70&#xff08;回溯、旋转图像、技巧题&#xff09;一、110. 平衡二叉树二、39. 组合总和三、543. 二叉树的直径四、470. 用 Rand7() 实现 Rand1…

win系统提示VCRUNTIME140_1.dll丢失或找不到的8个处理方法

在使用电脑过程中经常会遇到各种各样的问题&#xff0c;比如vcruntime140_1.dll丢失或找不到vcruntime140_1.dll无法继续执行代码就是其中的一个常见问题!那么遇到vcruntime140_1.dll丢失问题要怎么处理&#xff1f;vcruntime140_1.dll是什么&#xff1f;下面我给大家详细介绍v…

谷粒商城学习笔记-16-人人开源搭建后台管理系统

文章目录 一&#xff0c;克隆前/后端代码1&#xff0c;克隆前端工程renren-fast-value2&#xff0c;克隆后端工程renren-fast 二&#xff0c;集成后台管理系统的后端代码三&#xff0c;启动后台管理系统四&#xff0c;前端系统的安装和运行1&#xff0c;下载安装VSCode2&#x…

Crossformer_Transformer

文章目录 摘要1 引言2 相关工作多变量时间序列预测基于Transformer的MTS预测视觉Transformers 3 方法详细解释 3.1 维度-分段-方式嵌入3.2 两阶段注意力层跨时间阶段跨维度阶段 3.3 分层编码器-解码器编码器解码器 摘要 最近&#xff0c;许多深度模型被提用于多变量时间序列&a…

Pyserial设置缓冲区大小失败

文章目录 问题描述原因分析解决方案 问题描述 使用set_buffer_size()设置缓冲区大小后&#xff0c;buffer size仍为默认的4096 import time import serial ser serial.Serial(baudrate9600, timeout0.5) ser.port COM1 ser.set_buffer_size(rx_size8192) ser.open() while …

无线传感器网络(物联网通信技术)期末考试2024年真题

目录 WSN期末复习资料 第一章&#xff1a;概述 第二章MAC协议 第三章路由协议 第四章时间同步技术 第五章定位技术 第六章安全技术 第七章拓扑控制 补充TPSN、HRTS公式推导 2024年期末考试考点 一、简述 二、考试真题回忆 WSN期末复习资料 第一章&#xff1a;概述 …

基于SpringBoot的校园台球厅人员与设备管理系统

本系统是要设计一个校园台球厅人员与设备管理系统&#xff0c;这个系统能够满足校园台球厅人员与设备的管理及用户的校园台球厅人员与设备管理功能。系统的主要功能包括首页、个人中心、用户管理、会员账号管理、会员充值管理、球桌信息管理、会员预约管理、普通预约管理、留言…

15集终于编译成功了-了个球!编译TFLite Micro语音识别工程-《MCU嵌入式AI开发笔记》

15集终于编译成功了-个球&#xff01;编译TFLite Micro语音识别工程-《MCU嵌入式AI开发笔记》 还是参考这个官方文档&#xff1a; https://codelabs.developers.google.cn/codelabs/sparkfun-tensorflow#2 全是干货&#xff01; 这里面提到的这个Micro工程已经移开了&#xff1…

第一节 网络安全概述

一.网络空间安全 网络空间&#xff1a;一个由信息基础设施组成相互依赖的网络。 ---- 海陆空天&#xff08;大海、陆 地、天空、航天&#xff09; 通信保密阶段 ---- 计算机安全 ----- 信息系统安全 ----- 网络空间安全 计算机安全&#xff1a;开始秉持着“严于律己&#x…

数据结构速成--图

由于是速成专题&#xff0c;因此内容不会十分全面&#xff0c;只会涵盖考试重点&#xff0c;各学校课程要求不同 &#xff0c;大家可以按照考纲复习&#xff0c;不全面的内容&#xff0c;可以看一下小编主页数据结构初阶的内容&#xff0c;找到对应专题详细学习一下。 目录 …

设计模式之状态机模式

一、状态机模式介绍 状态机模式&#xff08;State Machine Pattern&#xff09;是一种用于描述对象行为的软件设计模式&#xff0c;属于行为型设计模式。在状态机模式中&#xff0c;对象的行为取决于其内部状态&#xff0c;并且在不同的状态下&#xff0c;对象可能会有不同的行…

增强安全防护,解读智慧校园系统的登录日志功能

在构建智慧校园系统时&#xff0c;登录日志功能扮演着不可或缺的角色&#xff0c;它不仅是系统安全的守护者&#xff0c;也是提升管理效率和确保合规性的有力工具。这一机制详细记录每次登录尝试的方方面面&#xff0c;涵盖了时间戳、用户身份、登录来源的IP地址乃至使用的设备…

第2集《修习止观坐禅法要》

请打开补充讲表第一面&#xff0c;附表一、念佛摄心方便法。 我们前面讲到修止&#xff0c;就是善取所缘境的相貌&#xff0c;然后心于所缘&#xff0c;专一安住&#xff1b;心于所缘&#xff0c;相续安住&#xff1b;达到心一境性的目的。 站在修学净土的角度&#xff0c;他…

Ubuntu 20.04下多版本CUDA的安装与切换 超详细教程

目录 前言一、安装 CUDA1.找到所需版本对应命令2.下载 .run 文件3.安装 CUDA4.配置环境变量4.1 写入环境变量4.2 软连接 5.验证安装 二、安装 cudnn1.下载 cudnn2.解压文件3.替换文件4.验证安装 三、切换 CUDA 版本1.切换版本2.检查版本 前言 当我们复现代码时&#xff0c;总会…

如何监控和分析 PostgreSQL 中的查询执行计划?

文章目录 一、为什么监控和分析查询执行计划很重要二、PostgreSQL 中用于获取查询执行计划的方法三、理解查询执行计划的关键元素四、通过示例分析查询执行计划五、优化查询执行计划的常见策略六、使用工具辅助分析七、结合实际案例的详细分析八、总结 在 PostgreSQL 数据库中&…

STM32基础篇:引脚 × 复用 × 重映射

特殊引脚与普通引脚 特殊引脚 特殊功能引脚&#xff1a;"迫于生活压力"被特化的引脚&#xff0c;即为了满足芯片运行的基本条件。 以STM32F103C8T6型号为例&#xff0c;其特殊功能引脚&#xff08;11个&#xff09;(VddVss)*3多组供电接口VDDAVSSA(A表示Analog&…