Margrop
Articles158
Tags353
Categories21
1password AC AP API AppDaemon Aqara Cron Date Diagrams.net HA HADashboard HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS MySQL NAS PPPoE PostgreSQL ProcessOn Proxmox VE SSL Shell TTS TimeMachine UML Uptime Kuma Web Windows activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https idea image img img2kvm import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl tap tap-windows tapwindows telecom template terminal tls token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 光猫 公网IP 内存 内网IP 升级 启动 夏令时 天猫精灵 天翼云 安装 容器 导入 小米 常用软件 广告屏蔽 序列号 应用市场 异常 抓包 描述文件 时区 显卡虚拟化 智能家居 智能音箱 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 电信 画图 直播源 续期 网关 网络风暴 群晖 腾讯 虚拟机 证书 路由 路由器 软件管家 软路由 运维监控 镜像 镜像源 门窗传感器 防火墙 阿里云 阿里源 集客

Hitokoto

Archive

天翼云电脑永不休眠方法高科技版本(基于Python)

天翼云电脑永不休眠方法高科技版本(基于Python)

原理:定期连接天翼云桌面(需小于1小时间隔)

步骤一:获取请求数据
  1. 打开Chrome浏览器的开发者工具

    • 在Chrome浏览器中按F12或右键选择检查打开开发者工具。
  2. 访问并登录天翼云桌面

    • 访问https://pc.ctyun.cn,并使用你的账号登录云电脑。
  3. 复制connect请求的curl命令

    • 在开发者工具中,选择Network标签,找到并点击名为connect的请求。
    • 右键点击该请求,选择Copy as cURL (cmd)
  4. 获取localStorage中的authData

    • 在开发者工具中,选择Application标签。
    • 在左侧栏中找到Local Storage并选择https://pc.ctyun.cn
    • 找到authData键,复制其对应的值。
步骤二:填充到Python脚本

将获取到的curl命令中的相关数据和localStorage中的authData值,复制到临时的记事本中,找到下面Python脚本所需字段,并

填充到以下Python脚本中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import requests
import hashlib
import time

# 配置参数(用户需要根据实际情况修改)
device_info = {
"objId": "你的设备ID", # 设备ID
"objType": 0, # 设备类型
"osType": 15, # 操作系统类型
"deviceId": 60, # 设备ID
"deviceCode": "你的设备代码", # 设备代码
"deviceName": "你的设备名称", # 设备名称
"sysVersion": "你的系统版本", # 系统版本
"appVersion": "1.36.1", # 应用版本
"hostName": "你的主机名称", # 主机名称
"vdCommand": "", # 虚拟桌面命令
"ipAddress": "", # IP地址
"macAddress": "", # MAC地址
"hardwareFeatureCode": "你的硬件特征码" # 硬件特征码
}

# 请求头中的一些参数
app_model_value = "2"
device_code_value = "你的设备代码"
device_type_value = "60"
request_id_value = "你的请求ID值"
tenant_id_value = "你的租户ID值"
userid_value = "你的用户ID值"
version_value = "201360101"
secret_key_value = "你的秘钥值"

# 动态生成时间戳
timestamp_value = str(int(time.time() * 1000))

# 创建签名字符串
signature_str = device_type_value + request_id_value + tenant_id_value + timestamp_value + userid_value + version_value + secret_key_value

# 使用MD5算法创建签名
hash_obj = hashlib.md5()
hash_obj.update(signature_str.encode('utf-8'))
digest_hex = hash_obj.hexdigest().upper()

# 准备请求头
headers = {
'accept': 'application/json, text/plain, */*',
'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
'content-type': 'application/x-www-form-urlencoded',
'ctg-appmodel': app_model_value,
'ctg-devicecode': device_code_value,
'ctg-devicetype': device_type_value,
'ctg-requestid': request_id_value,
'ctg-signaturestr': digest_hex,
'ctg-tenantid': tenant_id_value,
'ctg-timestamp': timestamp_value,
'ctg-userid': userid_value,
'ctg-version': version_value,
'origin': 'https://pc.ctyun.cn',
'priority': 'u=1, i',
'referer': 'https://pc.ctyun.cn/',
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36'
}

# 设置API的URL和路径
url = "https://desk.ctyun.cn:8810/api/"
computer_connect = "desktop/client/connect"

# 发起POST请求连接云电脑
response = requests.post(url + computer_connect, data=device_info, headers=headers)

# 打印出云电脑的连接状态
print("云电脑连接状态:", response.json())
步骤三:定时执行脚本

你可以使用以下方法定期执行脚本:

  1. Windows任务计划

    • 打开任务计划程序,创建一个新的任务。
    • 操作选项卡中,选择启动程序,然后选择你的Python解释器和脚本路径。
  2. Linux Crontab

    • 打开终端,输入crontab -e
    • 添加一行来定期运行脚本,例如每小时运行一次:
      0 * * * * /usr/bin/python3
      <!--stackedit_data:
      eyJoaXN0b3J5IjpbLTQ0NjAxMDQyXX0=
      -->
      
Author:Margrop
Link:http://blog.margrop.com/post/automating-connections-to-ctyun-desktop-using-python/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可