private void CameraLogin() { var ipAddress = new byte[16]; uint dwPort = 0; if ( !CHCNetSDK.NET_DVR_GetDVRIPByResolveSvr_EX(_cameraLogin.IpServerAddr, 7071, null, 0, _cameraLogin.DomainBytes, (ushort)_cameraLogin.DomainBytes.Length, ipAddress, ref dwPort)) { _lastError = CHCNetSDK.NET_DVR_GetLastError(); DisplayMessage($"域名解析失败,错误号:{_lastError}"); return; } _dvrAddress = Encoding.UTF8.GetString(ipAddress).TrimEnd('\0'); _dvrPortNumber = (ushort)dwPort; _loginUserId = CHCNetSDK.NET_DVR_Login_V30(_dvrAddress, _dvrPortNumber, _cameraLogin.User, _cameraLogin.Password, ref _deviceInfo); if (_loginUserId < 0) { _lastError = CHCNetSDK.NET_DVR_GetLastError(); DisplayMessage($"用户登录失败,错误号:{_lastError}"); return; } DisplayMessage("用户登录成功。"); _dwAChanTotalNum = _deviceInfo.byChanNum; _dwDChanTotalNum = _deviceInfo.byIPChanNum + (256 * (uint)_deviceInfo.byHighDChanNum); InfoIpChannel(); }
private static void GetIpServerAddress() { var inited = CHCNetSDK.NET_DVR_Init(); if (inited) { var senum = Encoding.UTF8.GetBytes("DS-7804N-K1/C0420161112CCRR677808992WVU"); byte[] devIp = new byte[2048]; uint port = 0; var ret = CHCNetSDK.NET_DVR_GetDVRIPByResolveSvr_EX("114.55.175.99", 7071, null, 0, senum, (ushort)senum.Length, devIp, ref port); Console.WriteLine(ret); if (!ret) { Console.WriteLine(CHCNetSDK.NET_DVR_GetLastError()); } } }
/// <summary> /// DDNS方式获取IP地址 /// </summary> /// <param name="DNSAddr"></param> /// <param name="DVRIPAddress"></param> /// <param name="DVRPortNumber"></param> /// <returns></returns> public bool GetIPAddr(string DNSAddr, ref string DVRIPAddress, ref Int16 DVRPortNumber) { byte[] HiDDNSName = System.Text.Encoding.Default.GetBytes(DNSAddr); byte[] GetIPAddress = new byte[16]; uint dwPort = 0; bool ret = false; if (CHCNetSDK.NET_DVR_GetDVRIPByResolveSvr_EX("www.hik-online.com", (ushort)80, HiDDNSName, (ushort)HiDDNSName.Length, null, 0, GetIPAddress, ref dwPort)) { DVRIPAddress = System.Text.Encoding.UTF8.GetString(GetIPAddress).TrimEnd('\0'); DVRPortNumber = (Int16)dwPort; ret = true; } else { m_lastErr = CHCNetSDK.NET_DVR_GetLastError(); } return(ret); }
private void btnLogin_Click(object sender, EventArgs e) { if (m_lUserID < 0) { string DVRIPAddress = textBoxIP.Text; //设备IP地址或者域名 Device IP Int16 DVRPortNumber = Int16.Parse(textBoxPort.Text); //设备服务端口号 Device Port string DVRUserName = textBoxUserName.Text; //设备登录用户名 User name to login string DVRPassword = textBoxPassword.Text; //设备登录密码 Password to login if (checkBoxHiDDNS.Checked) { byte[] HiDDNSName = System.Text.Encoding.Default.GetBytes(textBoxIP.Text); byte[] GetIPAddress = new byte[16]; uint dwPort = 0; if (!CHCNetSDK.NET_DVR_GetDVRIPByResolveSvr_EX("www.hik-online.com", (ushort)80, HiDDNSName, (ushort)HiDDNSName.Length, null, 0, GetIPAddress, ref dwPort)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_GetDVRIPByResolveSvr_EX failed, error code= " + iLastErr; //域名解析失败,输出错误号 Failed to login and output the error code DebugInfo(str); return; } else { DVRIPAddress = System.Text.Encoding.UTF8.GetString(GetIPAddress).TrimEnd('\0'); DVRPortNumber = (Int16)dwPort; } } //登录设备 Login the device m_lUserID = CHCNetSDK.NET_DVR_Login_V30(DVRIPAddress, DVRPortNumber, DVRUserName, DVRPassword, ref DeviceInfo); if (m_lUserID < 0) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_Login_V30 failed, error code= " + iLastErr; //登录失败,输出错误号 Failed to login and output the error code DebugInfo(str); return; } else { //登录成功 DebugInfo("NET_DVR_Login_V30 succ!"); btnLogin.Text = "Logout"; dwAChanTotalNum = (uint)DeviceInfo.byChanNum; if (DeviceInfo.byIPChanNum > 0) { InfoIPChannel(); } else { for (i = 0; i < dwAChanTotalNum; i++) { ListAnalogChannel(i + 1, 1); iChannelNum[i] = i + (int)DeviceInfo.byStartChan; } comboBoxView.SelectedItem = 1; // MessageBox.Show("This device has no IP channel!"); } } } else { //注销登录 Logout the device if (m_lRealHandle >= 0) { DebugInfo("Please stop live view firstly"); //登出前先停止预览 Stop live view before logout return; } if (!CHCNetSDK.NET_DVR_Logout(m_lUserID)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_Logout failed, error code= " + iLastErr; DebugInfo(str); return; } DebugInfo("NET_DVR_Logout succ!"); listViewIPChannel.Items.Clear();//清空通道列表 Clean up the channel list m_lUserID = -1; btnLogin.Text = "Login"; } return; }
public static void recordLogin() { if (m_lUserID < 0) { string DVRIPAddress = myForm.textBoxIP.Text; //设备IP地址或者域名 Device IP Int16 DVRPortNumber = Int16.Parse(myForm.textBoxPort.Text); //设备服务端口号 Device Port string DVRUserName = myForm.textBoxUserName.Text; //设备登录用户名 User name to login string DVRPassword = myForm.textBoxPassword.Text; //设备登录密码 Password to login if (myForm.checkBoxHiDDNS.Checked) { byte[] HiDDNSName = System.Text.Encoding.Default.GetBytes(myForm.textBoxIP.Text); byte[] GetIPAddress = new byte[16]; uint dwPort = 0; if (!CHCNetSDK.NET_DVR_GetDVRIPByResolveSvr_EX("www.hik-online.com", (ushort)80, HiDDNSName, (ushort)HiDDNSName.Length, null, 0, GetIPAddress, ref dwPort)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_GetDVRIPByResolveSvr_EX failed, error code= " + iLastErr; //域名解析失败,输出错误号 Failed to login and output the error code DebugInfo(str); return; } else { DVRIPAddress = System.Text.Encoding.UTF8.GetString(GetIPAddress).TrimEnd('\0'); DVRPortNumber = (Int16)dwPort; } } //登录设备 Login the device m_lUserID = CHCNetSDK.NET_DVR_Login_V30(DVRIPAddress, DVRPortNumber, DVRUserName, DVRPassword, ref myForm.DeviceInfo); if (m_lUserID < 0) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); //str = "NET_DVR_Login_V30 failed, error code= " + iLastErr; //登录失败,输出错误号 Failed to login and output the error code str = "登录录像机失败,请检查录像机网络,错误代码:" + iLastErr; MessageBox.Show(str); DebugInfo(str); return; } else { //登录成功 //DebugInfo("NET_DVR_Login_V30 succ!"); DebugInfo("登录成功,连接上录像机!"); recordStatus = 1; //btnLogin.Text = "Logout"; myForm.btnLogin.Text = "退出"; MessageBox.Show("登录成功, 连接上录像机!"); myForm.dwAChanTotalNum = (uint)myForm.DeviceInfo.byChanNum; myForm.dwDChanTotalNum = (uint)myForm.DeviceInfo.byIPChanNum + 256 * (uint)myForm.DeviceInfo.byHighDChanNum; if (myForm.dwDChanTotalNum > 0) { myForm.InfoIPChannel(); } else { for (loopLogo = 0; loopLogo < myForm.dwAChanTotalNum; loopLogo++) { myForm.ListAnalogChannel(loopLogo + 1, 1); iChannelNum[loopLogo] = loopLogo + (int)myForm.DeviceInfo.byStartChan; } myForm.comboBoxView.SelectedItem = 1; // MessageBox.Show("This device has no IP channel!"); } } } else { //注销登录 Logout the device if (m_lRealHandle >= 0) { //DebugInfo("Please stop live view firstly"); //登出前先停止预览 Stop live view before logout DebugInfo("请先停止预览,然后再退出登录!"); return; } if (!CHCNetSDK.NET_DVR_Logout(m_lUserID)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "退出登录失败,错误代码:" + iLastErr; //str = "NET_DVR_Logout failed, error code= " + iLastErr; DebugInfo(str); return; } // DebugInfo("NET_DVR_Logout succ!"); DebugInfo("退出成功!"); recordStatus = 0; myForm.listViewIPChannel.Items.Clear();//清空通道列表 Clean up the channel list m_lUserID = -1; // btnLogin.Text = "Login"; myForm.btnLogin.Text = "登录"; } return; }