当前位置: 首页 > news >正文

服务器获取外网IP,并发送到钉钉

服务器获取外网IP,并发送到钉钉

import time
import hmac
import hashlib
import base64
import urllib.parse
import requests# === 请填入你的钉钉机器人配置 ===
access_token = 'XXXX'
secret = 'XXXX'# 获取公网 IP
def get_public_ip():try:response = requests.get("https://api.ipify.org", timeout=5)return response.text.strip()except Exception as e:return f"获取公网 IP 失败: {e}"# 生成签名
def generate_signature(secret):timestamp = str(round(time.time() * 1000))secret_enc = secret.encode('utf-8')string_to_sign = f'{timestamp}\n{secret}'string_to_sign_enc = string_to_sign.encode('utf-8')hmac_code = hmac.new(secret_enc, string_to_sign_enc, hashlib.sha256).digest()sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))return timestamp, sign# 发送消息到钉钉
def send_dingding_message(ip_address):timestamp, sign = generate_signature(secret)url = f'https://oapi.dingtalk.com/robot/send?access_token={access_token}&timestamp={timestamp}&sign={sign}'headers = {'Content-Type': 'application/json'}message = {"msgtype": "markdown","markdown": {"title": "服务器公网 IP 通知","text": f"###  新加坡服务器公网 IP\n\n当前公网 IP 地址为:`{ip_address}`\n\n发送时间:{time.strftime('%Y-%m-%d %H:%M:%S')}"}}response = requests.post(url, headers=headers, json=message)if response.status_code == 200 and response.json().get("errcode") == 0:print("钉钉消息发送成功 ✅")else:print(f"发送失败 ❌: {response.text}")if __name__ == '__main__':ip = get_public_ip()send_dingding_message(ip)
http://www.lryc.cn/news/572737.html

相关文章:

  • 力扣-136.只出现一次的数字
  • 【MATLAB代码】制导方法介绍与例程——追踪法,适用于二维平面,目标是移动的|附完整源代码
  • java项目打包成jar包,并给jmeter使用
  • Lora训练
  • Maven 之工程化开发核心指南:插件配置、pom 文件与依赖管理
  • 一生一芯 PA2 RTFSC
  • Nginx-Ingress-Controller自定义端口实现TCP/UDP转发
  • js 生成过控制点的曲线
  • 数据库part2---子查询
  • 学习笔记丨AR≠VR:透视沉浸式技术的“虚实象限”法则
  • JuiceFS 集群部署详细指南:使用 SeaweedFS 作为数据存储,ETCD 作为元数据存储
  • Redis如何解决缓存击穿,缓存雪崩,缓存穿透
  • Unity技能编辑器深度构建指南:打造专业级战斗系统
  • Pycharm中Jupyter Notebook 插件常用快捷键
  • 1.21SQLCipher 简介
  • Flutter Hero 组件详解及应用
  • window显示驱动开发—输出合并器阶段
  • 企业级权限按钮高效实现方案
  • JS红宝书笔记 8.4 类
  • Spring Boot自动配置原理
  • 三种经典算法无人机三维路径规划对比(SMA、HHO、GWO三种算法),Matlab代码实现
  • 新能源汽车换电站需求大爆发,光储充微电网解决方案为换电运维提供“智慧大脑”
  • 一个用于记录和存储 H.264 视频帧的工具类
  • 【精选】基于SpringBoot的宠物互助服务小程序平台开发 微信小程序宠物互助系统 宠物互助小程序平台设计与实现 支持救助发布+领养申请+交流互动功能
  • 基于微信小程序的美食点餐订餐系统
  • OPENGLPG第九版学习 - 纹理与帧缓存 part1
  • .docx 和 .doc 都是 Word 文档格式的区别
  • el-table复杂表头(多级表头行或列的合并)
  • Mac电脑 窗口分屏管理 Magnet Pro
  • 4、做中学 | 二年级下期 Golang整型和浮点型