酷唱首页 云控域名 云控日志 动态域名使用教程 设备使用教程
 
 
动态域名可以做什么?
       动态域名当前主要应用在路由器、网络摄像机、带网络监控的硬盘录像机、视频采集卡、企业管理ERP软件、SF软件服务端以及其他所有需要进行网络远程访问的应用中。其目的是建立网络服务,如WEB服务、FTP服务、网络视频流服务等等。有了动态域名,我们会发现自己可以拥有自己的WEB服务器、FTP服务器、Email服务器。而且还完全掌握控制自己的服务器,而不必担心由于服务器托管造成关键数据的不安全。在电脑普及环境下,个人电脑也可以搭建服务器。特别是当今网络远程实时观看设备的发展,极大地促进了动态域名的应用。
 
指令键值对的定义解析
       键值对之间用&分隔
       键值对的构成是键名(key)以及索引的对象键值(value)
 
包类型简称
lsLogin Server登录到服务器
jgJoin Group加入群组(电器设备)
ppPacket Ping包链接检测
shSync Heartbeat同步心跳包
ntNetwork Time网络时间
irInterrupt Request中断申请
frFunction Read功能区域读
fwFunction Write功能区域写
crCommand Read指令读
cwCommand Write指令写
rrRegister Read寄存器读
rwRegister Write寄存器写
eaEvaluation Account申请评估账号
 
包键值简称
ptPacket Type包类型
psPacket Sequence包序列
lrLogin Role登录角色
ltLogin Token登录令牌
anAccount Name账号名
apAccount Password账号密码
gnGroup Name群组名(电器设备端的账号名)
gvGroup Visit code群组账号访问码(电器设备端的访问)
gtGroup Token群组登录令牌
nnNick Name群组昵称
spServer Port服务器使用的端口
dbData Base64数据 使用BASE64编码
bcBlock Crcs数据块 使用Crc检验
fiFull Identity完整的Id
fsFunction Setup功能区域设置
fdFunction Data功能区域数据
 
发送登录指令例子(有键值对):pt:ls&an:66061.iotlink.ip71.cn&ap:4512
       pt为包类型(Packet Type)
       ls为登录到服务器(Login Server)
       an为账号名(Account Name)
       ap为账号密码(Account Password)
 
接收登录指令例子(只有键值):ls&ok&120&sw989a1r
       ls为登录到服务器(Login Server)
       ok为成功
       120为心跳包间隔时间
       sw989a1r为登录令牌值(每次登录都不一样)
 
发送心跳指令例子(有键值对):pt:sh&ps:c& lt:sw989a1r
       pt为包类型(Packet Type)
       sh为同步心跳(Sync Heartbeat)
       ps为数据包序列(Packet Sequence)
       c为数据包序列值(每次登录都不一样)
       lt为登录令牌(Login Token)
       sw989a1r为登录令牌值(每次登录都不一样)
 
接收心跳指令例子(只有键值):sh&ok&113.116.51.62
       sh为同步心跳(Sync Heartbeat)
       ok为成功
       113.116.51.62为本机的公网网络IP地址
 
接收登录失败时例子(只有键值):ls&e5
接收心跳失败时例子(只有键值):sh&e9
       ls为登录到服务器(Login Server)
       sh为同步心跳(Sync Heartbeat)
       e1为一般出错
       e2为指令格式不对
       e3为参数出错
       e4为账号名出错
       e5为账号密码出错
       e6为电器设备账号名出错
       e7为账号访问码出错
       e9为登录令牌或访问令牌出错
 
服务器ip地址和服务器端口来源:113.87.90.13:6211
1.打开电脑的命令提示符,然后输入“ping i.ip71.cn”,按回车键,得到服务器的地址113.87.90.13
2.然后输入“ping p.ip71.cn”,按回车键,得到一个数组
3.将数组的67和24分别转成十六进制的数值,得到43和18,再把43和18组成一个十六进制的数1843,最后把十六进制的1843转 成十进制的数值,就能得出端口为6211。
 
OpenDdns的使用
1.打开电脑的命令提示符,找到“OpenDdns.exe”保存的路径,然后输入域名的账号和密码,按回车键发送登录信息
2.得到服务器返回的登录结果,还有本机的网络IP地址
 
3.OpenDdns.c的例子,点击参看
int main(int argc, char* argv[]) {
       WSADATA wSAData;
       uint32_t svrIp;
       uint16_t svrPort;
       SOCKET udp;
       uint8_t* ip = (uint8_t*)&svrIp;
       if (WSAStartup(0x0101, &wSAData) != 0) { // 初始化网络
              printf("初始化网络出错\r\n");
              return 1;
       }
       if (!getServerIp(&svrIp, &svrPort)) { // 获取物链域名服务器IP
              printf("获取物链域名服务器IP出错\r\n");
              return 1;
       }
       printf("获取物链域名服务器IP(%d.%d.%d.%d:%d)成功\r\n", ip[0], ip[1], ip[2], ip[3], svrPort);
       if (argc < 3) { // 没有输入域名账号名及密码
              printf("没有输入域名账号名及密码,至少需要3个参数,现在只有%d个参数\r\n", argc);
              return 1;
       }
       udp = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // 创建必要网络参数
       if (udp != SOCKET_ERROR) { //创建必要网络参数
              uint32_t time;
              char token[16];
              SOCKADDR_IN addr = { 0 };
              addr.sin_family = AF_INET;
              addr.sin_addr.s_addr = svrIp;
              addr.sin_port = htons(svrPort);
              if (LoginToServer(udp, &addr, argv[1], argv[2], token, &time)) {
                     char outIp[16];
                     printf("登录物链域名服务器(token:%s 间隔时间:%d秒)成功\r\n", token, time);
                     if (SyncHeartbeat(udp, &addr, token, outIp)) {
                            printf("获得本机的网络IP为:%s\r\n", outIp);
                     }
              }
              WSACleanup();
              return 0;
       }
       WSACleanup();
       return 1;
}
 
粤ICP备05035725号丨2002-2023深圳市酷唱科技有限公司 版权所有