admin 管理员组文章数量: 886992
TSINGSEE青犀视频智能分析开发中大华设备搜索和批量重置密码的代码实现
之前我们讲到了TSINGSEE青犀视频团队在开发大华SDK当中的一些流程,本文我们分享下大华设备搜索和批量重置密码的代码实现。
主要流程图如下:
分布介绍:
1、调用 CLIENT_Init 完成 SDK 初始化流程。
2、调用 CLIENT_StartSearchDevices 搜索局域网内的设备,获取设备信息(不支持多线程调用)。
3、调用 CLIENT_GetDescriptionForResetPwd 获取重置密码的描述信息。
(可选)指定方式扫描上一步骤中获取的二维码,获取重置密码的安全码,通过CLIENT_CheckAuthCode 校验安全码。
(可选)使用 CLIENT_GetPwdSpecification 获取密码规则。
4、使用 CLIENT_ResetPwd 重置密码。
5、调用 CLIENT_StopSearchDevices 停止设备的搜索。
6、调用 CLIENT_LoginEx2,使用 admin 帐户和已重置的密码登录设备。
7、业务使用完后,调用 CLIENT_Logout 登出设备。
8、SDK 功能使用完后,调用 CLIENT_Cleanup 释放 SDK 资源。
示例代码:
//首先调用接口 CLIENT_StartSearchDevices,在回调函数中获取设备信息
//获取密码重置的描述信息
NET_IN_DESCRIPTION_FOR_RESET_PWD stIn = {sizeof(stIn)};
strncpy(stIn.szMac, szMac, sizeof(stIn.szMac) - 1); //设置 mac 值
strncpy(stIn.szUserName, szUserName, sizeof(stIn.szUserName) - 1);//设置用户名
stIn.byInitStatus = bStstus; //bStstus 为搜索设备接口(CLIENT_SearchDevices、CLIENT_StartSearchDevices
的回调函数和 CLIENT_SearchDevicesByIPs)返回字段 byInitStatus 的值
NET_OUT_DESCRIPTION_FOR_RESET_PWD stOut = {sizeof(stOut)};
char szTemp[360];
stOut.pQrCode = szTemp;
CLIENT_GetDescriptionForResetPwd(&stIn, &stOut, 3000, NULL);//在单网卡的情况下最后一个参数可以不
填;在多网卡的情况下,最后一个参数填主机 IP。接口执行成功后,stOut 会输出一个二维码,二维码信
息地址为 stOut.pQrCode,扫描此二维码,获取重置密码的安全码,此安全码会发送到预留手机号或者邮箱
//(可选)校验安全码
NET_IN_CHECK_AUTHCODE stIn1 = {sizeof(stIn1)};
strncpy(stIn1.szMac, szMac, sizeof(stIn1.szMac) - 1); //设置 mac
strncpy(stIn1.szSecurity, szSecu, sizeof(stIn1.szSecurity) - 1); // szSecu 为上一步骤中发送到预留手机号或者邮
箱里的安全码
NET_OUT_CHECK_AUTHCODE stOut1 = {sizeof(stOut1)};
bRet = CLIENT_CheckAuthCode(&stIn1, &stOut1, 3000, NULL); //在单网卡的情况下最后一个参数可以不填;
在多网卡的情况下,最后一个参数填主机 IP
//获取密码规则
NET_IN_PWD_SPECI stIn2 = {sizeof(stIn2)};
strncpy(stIn2.szMac, szMac, sizeof(stIn2.szMac) - 1); //设置 mac
NET_OUT_PWD_SPECI stOut2 = {sizeof(stOut2)};
CLIENT_GetPwdSpecification(&stIn2, &stOut2, 3000, NULL);//在单网卡的情况下最后一个参数可以不填;
在多网卡的情况下,最后一个参数填主机 IP。获取成功的情况下,可根据获取出的设备密码规则设置符合
规则的密码,此步骤主要是防止客户设置一些设备不支持的密码格式
//重置密码
NET_IN_RESET_PWD stIn3 = {sizeof(stIn3)};
strncpy(stIn3.szMac, szMac, sizeof(stIn3.szMac) - 1); //设置 mac 值
strncpy(stIn3.szUserName, szUserName, sizeof(stIn3.szUserName) - 1); //设置用户名
strncpy(stIn3.szPwd, szPassWd, sizeof(stIn3.szPwd) - 1); //szPassWd 为符合密码规则的重置密码
strncpy(stIn3.szSecurity, szSecu, sizeof(stIn1.szSecurity) - 1); // szSecu 为扫描二维码后发送到预留手机号或者
邮箱里的安全码
stIn3.byInitStaus = bStstus; //bStstus 为搜索设备接口(CLIENT_SearchDevices、CLIENT_StartSearchDevices
的回调函数和 CLIENT_SearchDevicesByIPs)返回字段 byInitStatus 的值
stIn3.byPwdResetWay = bPwdResetWay; //bPwdResetWay 为搜索设备接口(CLIENT_SearchDevices、
CLIENT_StartSearchDevices 的回调函数和 CLIENT_SearchDevicesByIPs)返回字段 byPwdResetWay 的值
NET_OUT_RESET_PWD stOut3 = {sizeof(stOut3)};
CLIENT_ResetPwd(&stIn3, &stOut3, 3000, NULL);// 在单网卡的情况下最后一个参数可以不填;在多网卡
的情况下,最后一个参数填主机 IP
代码截图:
本文标签: TSINGSEE青犀视频智能分析开发中大华设备搜索和批量重置密码的代码实现
版权声明:本文标题:TSINGSEE青犀视频智能分析开发中大华设备搜索和批量重置密码的代码实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732355989h1534453.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论