高恪云提供了一种简要的方式来访问设备信息,方便开发者直接使用调用接口,但原则上请尽量开发者根据访问原理自行开发

引入jquery.device.js

页面引入https://api.gocloud.cn/static/jquery.device.js

一键登录

jQuery.gocloudAutoWeb(device_id, access_token)

输入

参数名 描述 示例
device_id 设备ID “1234567”
access_token 访问token “myaccesstoken”

访问设备信息

jQuery.gocloudGetDeviceInfo(type, device_id, access_token, callBack, [suffix])

输入

参数 描述 可取值 示例
type 设备信息类型 base / historycpu / historyhost / historyconn / historyiface “base”
device_id 设备ID - “1234567”
access_token 访问token - “myaccesstoken”
callBack 回调函数 - Function(response)
suffix 历史数据时段[可选] 2h / day / week / month “2h”

输出

参考附录ajax接口文档,ajax返回的数据均由回调函数callBack处理

类型 对应接口 描述
base /status/floating 首要信息
historycpu /history/cpu_suffix 历史CPU
historyhost /history/hosts_suffix 历史主机数
historyconn /history/conn_suffix 历史连接数
historyiface /ajax/history/iface_suffix/iface-name 历史流量数据

一键登录的实现细节及注意事项

  1. 跨域访问
  2. 通过参数accesstoken访问接口 https://api.gocloud.cn/agent/devices/[device_id]/webuiurl 得到可访问设备的url
  3. 如果没有公网ip(urlip),则使用的urldomain访问设备
  4. 如果有公网ip,为了排除伪公网ip和运营商禁止的问题,需要做如下几个嗅探动作
  5. 访问urlip,检查http请求是否有服务端的回应 (对服务端的http回应结果无要求,比如http code 403,尽管访问无权限,但已经探测到服务端正常工作并且是可达的)
  6. 替换urlip中的端口为65527,重复步骤5
  7. 步骤5和步骤6均符合要求则使用urlip访问设备,否则只能使用urldomain访问设备sh
  8. 补充:在微信中一键登录设备,可以选择统一使用urldomain,因为公网ip会被微信拦截并提示是否要继续跳转
文档更新时间: 2020-07-20 11:06   作者:Gocloud