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

  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 Authsession = 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).textreturn ip_addresselse:print("Request failed with status code:", response.status_code)return Noneexcept 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 Noneexcept Exception as e:print("An error occurred:", e)return Nonedef 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+HOST2asekey=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=OldIPAddresselif HOST2 == 'q':exitelse:New_IPAddress=HOST1+HOST2xml_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)

海康威视更改ip

# 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 Authsession = 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).textreturn ip_addresselse:print("Request failed with status code:", response.status_code)return Noneexcept 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 Noneexcept Exception as e:print("An error occurred:", e)return Nonedef 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+HOST2asekey=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=OldIPAddresselif HOST2 == 'q':exitelse:New_IPAddress=HOST1+HOST2xml_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>"""#执行摄像头IPaddressfun_New_IPAddress(url3,xml_data3,rebootUrl)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW与OpenCV图像处理对比

LabVIEW和OpenCV在图像处理方面各有特点。LabVIEW擅长图形化编程、实时处理和硬件集成&#xff0c;而OpenCV则提供丰富的算法和多语言支持。通过DLL、Python节点等方式&#xff0c;OpenCV的功能可在LabVIEW中实现。本文将结合具体案例详细分析两者的特点及实现方法。 LabVIEW与…

某大会的影响力正在扩大,吞噬了整个数据库世界!

1.规模空前 你是否曾被那句“上有天堂&#xff0c;下有苏杭”所打动&#xff0c;对杭州的湖光山色心驰神往&#xff1f;7月&#xff0c;正是夏意正浓的时节&#xff0c;也是游览杭州的最佳时期。这座古典与现代交融的城市将迎来了第13届PostgreSQL中国技术大会。作为全球数据库…

kubebuilder示例-新

生成代码 因为kubebuilder 命令工具需要依赖linux环境 所以本例方法使用git 同步代码 在window开发后提交 linux项目里拉代码运行的方式 创建go mod 项目 go mod init kubebuild_demo 初始化项目 生成基础框架 domain 生成group用的 kubebuilder init --domain example.com …

LabVIEW从测试曲线中提取特征值

在LabVIEW中开发用于从测试曲线中提取特征值的功能时&#xff0c;可以考虑以下几点&#xff1a; 数据采集与处理&#xff1a; 确保你能够有效地采集和处理测试曲线数据。这可能涉及使用DAQ模块或其他数据采集设备来获取曲线数据&#xff0c;并在LabVIEW中进行处理和分析。 特…

系统级别的原生弹窗窗口

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原生的弹出窗口dialog</title><style>…

【TB作品】51单片机 Proteus仿真 基于单片机的LCD12864万年历及温度监测系统设计

实验报告&#xff1a;基于单片机的LCD12864万年历及温度监测系统设计 背景介绍 本实验旨在设计并实现一个基于STC89C52单片机的LCD12864显示的万年历系统&#xff0c;同时集成温度传感器以实现温度监测功能。系统具备整点报时和闹钟功能&#xff0c;通过蜂鸣器进行提示。该设…

condition_variable---C++条件变量

文章目录 1.C11条件变量2. 相关api方法2.1 wait方法 2.2 wait_for 方法2.3 wait_until 方法2.4 notify_one 和 notify_all 方法 3虚假唤醒等问题 1.C11条件变量 std::condition_variable 是 C11 标准库中提供的一个类&#xff0c;用于在多线程环境中实现线程间的同步和通信。通…

CentOS7安装部署双版本MySQL

文章目录 CentOS7安装部署双版本MySQL一、前言1.场景2.环境 二、安装MySQL 5.6三、安装MySQL 8.01. 解压并移动 MySQL 文件2. 创建并配置 my.cnf3.修改mysql.server4. 添加用户组和用户5. 初始化 MySQL 数据目录6. 创建systemd服务文件7.创建符号链接8.首次登录9.允许所有主机连…

初中物理知识点总结(人教版)

初中物理知识点大全 声现象知识归纳 1 .声音的发生&#xff1a;由物体的振动而产生。振动停止&#xff0c;发声也停止。 2.声音的传播&#xff1a;声音靠介质传播。真空不能传声。通常我们听到的声音是靠空气传来的。 3.声速&#xff1a;在空气中传播速度是&#xff1a;340…

【2024_CUMCM】T检验、F检验、卡方检验

T检验 T检验主要用于比较两组数据的均值差异&#xff0c;适用于小样本数据分析。它可以分为单样本T检验、独立样本T检验和配对样本T检验。 单样本T检验用于比较一个样本与已知的总体均值差异&#xff0c;独立样本T检验用于比较两个独立样本的均值差异&#xff0c;配对样本T检…

【Transformer】transformer模型结构学习笔记

文章目录 1. transformer架构2. transformer子层解析3. transformer注意力机制4. transformer部分释疑 图1 transformer模型架构 图2 transformer主要模块简介 图3 encoder-decoder示意图N6 图4 encoder-decoder子层示意图 1. transformer架构 encoder-decoder框架是一种处理NL…

【Android】自定义换肤框架04之Skinner框架设计

到上一章为止&#xff0c;我们已经完整讲解了换肤所用到的所有技术点 这一章&#xff0c;我们来梳理下&#xff0c;如何从整体和细节上&#xff0c;进行代码设计 毕竟&#xff0c;我们不止是简单实现功能&#xff0c;要做到功能清晰&#xff0c;使用灵活 文章目录 核心组件使…

探索InitializingBean:Spring框架中的隐藏宝藏

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 ✨欢迎加入探索MYSQL索引数据结构之旅✨ &#x1f44b; Spring框架的浩瀚海洋中&#x…

Java里的Arrary详解

DK 中提供了一个专门用于操作数组的工具类&#xff0c;即Arrays 类&#xff0c;位于java.util 包中。该类提供了一些列方法来操作数组&#xff0c;如排序、复制、比较、填充等&#xff0c;用户直接调用这些方法即可不需要自己编码实现&#xff0c;降低了开发难度。 java.util.…

用PlantUML和语雀画UML类图

概述 首先阐述一下几个简单概念&#xff1a; UML&#xff1a;是统一建模语言&#xff08;Unified Modeling Language&#xff09;的缩写&#xff0c;它是一种用于软件工程的标准化建模语言&#xff0c;旨在提供一种通用的方式来可视化软件系统的结构、行为和交互。UML由Grady…

用于实时语义分割的可重参数化双分辨率网络

文章目录 摘要一、引言II、相关工作III、方法IV. 实验V、结论摘要 https://arxiv.org/pdf/2406.12496 语义分割在自动驾驶和医学图像等应用中发挥着关键作用。尽管现有的实时语义分割模型在准确性和速度之间取得了令人称赞的平衡,但其多路径块仍然影响着整体速度。为了解决这…

洛谷 P2141 [NOIP2014 普及组] 珠心算测验

本文由Jzwalliser原创&#xff0c;发布在CSDN平台上&#xff0c;遵循CC 4.0 BY-SA协议。 因此&#xff0c;若需转载/引用本文&#xff0c;请注明作者并附原文链接&#xff0c;且禁止删除/修改本段文字。 违者必究&#xff0c;谢谢配合。 个人主页&#xff1a;blog.csdn.net/jzw…

pyrender 离线渲染包安装教程

pyrender 离线渲染包安装教程 安装 安装 官方安装教程:https://pyrender.readthedocs.io/en/latest/install/index.html#installmesa 首先 pip install pyrenderclang6.0安装 下载地址:https://releases.llvm.org/download.html#6.0.0 注意下好是叫&#xff1a;clangllvm-6…

名企面试必问30题(二十三)—— 工作中难以和同事、上司相处,你该怎么办?

回答方向一 如果在工作中遇到与同事、上司难以相处的情况&#xff0c;我首先会保持冷静和积极的心态&#xff0c;不让情绪影响到工作。我会反思自己的行为和态度&#xff0c;分析产生矛盾或难以相处的原因。 如果是因为工作方式、方法上存在差异&#xff0c;我会主动找同事或上…

通信协议_C#实现自定义ModbusRTU主站

背景知识&#xff1a;modbus协议介绍 相关工具 mbslave:充当从站。虚拟串口工具:虚拟出一对串口。VS2022。 实现过程以及Demo 打开虚拟串口工具: 打开mbslave: 此处从站连接COM1口。 Demo实现 创建DLL库&#xff0c;创建ModbusRTU类,进行实现&#xff1a; using Syste…