Zabbix—企业微信报警群通消息通知

zabbix配置企业微信报警 关于zabbix企业微信报警详细说明 阅读详情
   这个需要在企业微信里面创建群,在群里创建机器人,之后复制机器人的Webhook:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=aeb6c635-6ff9-4fbc-991d-617c5ba16d6d

Python脚本:

#!/usr/bin/env python
# _*_coding:utf-8 _*_

import requests, sys, json, time
import urllib3

urllib3.disable_warnings()


def SendMessageURL(User, Subject, Messages):
    ###机器人的Webhook
    URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" #企微Webhook地址
    HEADERS = {"Content-Type": "application/json"}
    Data = {
        "msgtype": "markdown",
        "markdown": {
            "content": "# \n <font color=\"warning\">%s</font> \n <font color=\"info\">%s</font> \n <@%s>" % (
            Subject, Messages, User),
            # "mentioned_list" : [User],
            # "content": \<font color="warning">Subject</font>  \n  Messages,
            # "mentioned_list" :[User],
            ###因为是故障告警群,所以需要@all,这个看自己选择
            "mentioned_list": [User, "@all"]
            # "mentioned_mobile_list" : ["xxxxxxxx","@all"]
        }
    }
    r = requests.post(url=URL, headers=HEADERS, json=Data, verify=False)
    print(r.json())


if __name__ == "__main__":
    SENDTO = str(sys.argv[1])
    SUBJECT = str(sys.argv[2])
    MESSAGE = str(sys.argv[3])
    Status = str(SendMessageURL(SENDTO, SUBJECT, MESSAGE))
    print(Status)



##############################################################
这段代码的主要功能是向企业微信群发送一条Markdown格式的消息,并且可以@指定的用户或所有人。下面我将逐行解释代码的功能和实现方式。

首先,代码使用了#!/usr/bin/env python作为Shebang,这是 Unix-like 系统中用于指定脚本解释器的语法,表示这个脚本应该使用系统中找到的Python解释器来运行。

然后,设置了编码声明# _*_coding:utf-8 _*_,确保代码文件是以UTF-8编码的,这样可以正确处理中文等多字节字符。

接下来,导入了必要的模块:

requests:用于发送HTTP请求。

sys:用于命令行参数处理。

json:用于JSON数据的处理。

time:虽然在这个脚本中没有用到,但可能在将来会用到。

urllib3:用于禁用安全请求警告。

通过urllib3.disable_warnings()禁用了requests库的警告信息,这样在运行脚本时不会看到关于证书验证的警告。

定义了一个函数SendMessageURL(User, Subject, Messages),这个函数接收三个参数:

User:要@的用户。

Subject:消息的主题。

Messages:消息的内容。

在函数内部:

定义了企业微信机器人的Webhook URL,这个URL是通过企业微信的管理后台生成的,用于向指定的群发送消息。

设置了请求头HEADERS,指定内容类型为JSON。

构建了要发送的JSON数据Data,其中:

msgtype设置为markdown,表示消息类型是Markdown。

markdown字段中包含content,这是一个包含Markdown格式的字符串,其中使用了HTML标签来设置字体颜色,具体来说:

<font color="warning">用于标记主题,颜色为警告色。

<font color="info">用于标记消息内容,颜色为信息色。

<@%s>用于在消息中@指定的用户。

mentioned_list字段用于指定要@的用户列表,这里包括了传入的用户和@all,表示同时@指定用户和所有人。

使用requests.post方法发送POST请求,传递URL、headers和json数据,并关闭SSL验证(verify=False),这在生产环境中不推荐,因为会绕过证书验证,存在安全风险。

打印了请求的响应JSON。

在if __name__ == "__main__":块中:

从命令行参数中获取接收者、主题和消息内容。

调用SendMessageURL函数发送消息,并打印返回的状态。

总结一下,这个脚本的功能是通过企业微信机器人API发送一条带Markdown格式的消息,并且可以@指定的用户或所有人。脚本接受三个命令行参数:接收者、主题和消息内容。
 zabbix告警脚本参数

    需要把脚本放到zabbix告警的目录下

效果展示:

【Java】企业微信群机器人发送消息(文字、图片、MarkDown、文件消息) 将企业微信群机器人发送文字、图片、MarkDown、文件消息封装成了一个工具类,主要使用okhttp3调用机器人api,参数使用的是JSONObject(防止在用字符串拼接参数时出现各种特殊字符转义问题)。 阅读详情

相关推荐

Zabbix配置企业微信报警机器人

微信告警机器人是一种可以将Zabbix告警通知发送到微信群或个人微信号的工具。

weixin_53667818的博客 4553

企业微信机器人推送mysql_Zabbix.5.0设置企业微信群机器人推送告警信息

一、企业微信端配置1、创建微信群机器人在需要接收告警信息的企业微信群上右键(注意群里成员至少要3人以上),选择“添加群机器人”,设置机器人名称,系统自动生成此机器人的webhook地址,请记住该地址,不要随便给其他人,以免无关人员通过此地址推送垃圾信息!2、查看群机器人webhook信息,后面需要用到。二、告警脚本配置ps:zabbix利用python脚本给企业微信机器人推送告警信息~1、登录za...

weixin_35410099的博客 1431

Zabbix企业微信报警

一、企业微信注册 地址:http://work.weixin.qq.com/ 二、配置微信企业号 1、邀请运维人员加入企业微信 2、重点是添加应用。"应用与小程序"-&gt;"创建应用" 3、查看创建的应用的 AgentID 和 Secret 4、点击“我的企业”,查看“企业ID”   5、点击“通讯录”,查看用户的账号 需要得到的信息 -&gt; 记录用户的...

ixuetu的博客 1788

Zabbix配置企业微信和钉钉机器人告警

zabbix的企业微信告警和钉钉告警

rendongxingzhe的博客 4082

zabbix之企业微信报警

一、注册微信 企业微信https://qy.weixin.qq.com/ 注册一个 创建一个机器人 创建完后 二、zabbix服务器server端配置 修改配置文件 vim /usr/local/zabbix/etc/zabbix_server.conf #添加以下内容 AlertScriptsPath=/usr/local/zabbix/scripts/ 企业微信报警脚本 #创...

weixin_42480196的博客 819

zabbix 5.0 企业微信报警部署

企业微信报警部署Zabbix 5.0企业微信报警 Zabbix 5.0企业微信报警     Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。 注册企业微信     创建企业微信机器人,这里可以在企业微信群里中添加群机器人,没有企业微信的可以自己在企业微信官网申请注册个企业,创建企业微信群至少3个人以上,记录下webhook。 配置企业微信 添加机器

杭州吉网-运维日记 1832

zabbix企业微信报警

zabbix企业微信报警 1.先注册企业微信 企业微信地址:https://work.weixin.qq.com 1.2.填写注册相关信息 1.3.注册完成 2.创建报警机器人 2.1.创建应用 应用管理–应用-创建应用 2.2.编辑应用信息 设置机器人log、机器人名称 2.3.创建成功 需要的两个信息 AgentId 1000002 Secret #这个会发送到企业微信 3.微信关联企业微信接收报警内容 点击我的企业微信–微信插件–找到二维码扫码关注即可接收微信报警信息 扫描二维码关注

武子豪的博客 1万+

Zabbix Basic -zabbix 使用python脚本调用群企业微信机器人将告警信息发送至“企业微信”群中,并@指定人员(提醒指定人员查看)

文章目录申请企业微信(略)创建企业微信群(略)添加群机器人(企业微信手机端)企业微信官网关于群机器人的配置说明请点击跳转查看复制以下代码到zabbix报警脚本存放路径进入到zabbix报警脚本存放路径创建python脚本文件按“i”键进入vim编辑器的插入模式,并粘贴以下代码(需要修改机器人的webhook的地址)修改脚本的执行权限测试发送消息脚本执行的格式开始测试(测试过程可省略)结果如下提醒某人查看(本例中需要提醒用户的账号为:test)结果如下zabbix 添加告警源(本示例中为zabbix-5.0.

HuangFei 5783

Zabbix邮件脚本报警、新版本企业微信报警

Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}问题详情:{ITEM.NAME}:{ITEM.VALUE}告警信息: {TRIGGER.NAME}

2402_88627342的博客 1302

Zabbix报警

问题详情:{ITEM.NAME}: {ITEM.LASTVALUE}报警主机:{HOSTNAME}:{HOST.IP} 故障!告警时间:{EVENT.DATE} {EVENT.TIME}告警级别:{TRIGGER.SEVERIY}告警项目:{TRIGGER.KEY1}故障时长:{EVENT.AGE}使用163配置邮件报警就全部完成了。

lushaoso_g的博客 759

GIS坐标系转换以及空间校正和地理配准

许多小伙伴都对坐标系,投影这类问题迷迷糊糊,我之前也一样,现在总结一下。 坐标系的转换1.为什么要进行坐标系的转换?2. 不同坐标系的介绍1.地理坐标系我国常见的地理坐标(1).北京54坐标系(2).西安80坐标系(3).WGS-84坐标系(4).大地2000坐标系2.投影坐标系我国常用的投影坐标系(1) UTM投影(2) 高斯-克吕格投影(3) 兰伯特投影(4) 阿尔伯斯投影投影坐标系的选择3. 坐标系的转换1.已知坐标系之间的转换1.1 两坐标系的参考椭球相同1.2 两坐标系的参考椭球不一致,但是GIS

m0_47258611的博客 8900

Rocky 9.4+Zabbix 7.2 配置企业微信群机器人报警

告警时间:{EVENT.DATE} {EVENT.TIME}告警时间:{EVENT.DATE} {EVENT.TIME}当前状态:{EVENT.RECOVERY.STATUS}恢复时间:{EVENT.RECOVERY.TIME}事件ID:{EVENT.RECOVERY.ID}告警严重性:{EVENT.SEVERITY}告警严重性:{EVENT.SEVERITY}

sylzp123的博客 1653

Aurix TC3XX Cache memory分析

Aurix Cache memory 分析

qwe0405080615的博客 4338

zabbix 配置企业微信告警群机器人告警

一、企业微信端配置 1、创建微信群机器人 在需要接收告警信息的企业微信群上右键(注意群里成员至少要3人以上),选择“添加群机器人”,设置机器人名称,系统自动生成此机器人的webhook地址,请记住该地址,不要随便给其他人,以免无关人员通过此地址推送垃圾信息! 2、查看群机器人webhook信息,后面需要用到。 二、告警脚本配置 ps:zabbix利用python脚本给企业微信机器人推送告警信息~ 1、登录zabbix server服务器,查找并进入zabbix告警脚本调用目录 g

conquer的博客 6401

一文带你弄懂thermal governor IPA

当current temp < target temp时,使用k_pu,当current temp >= target temp时,使用k_po。如果current_temperature = switch_on_temp时,则k_p = k_pu,这时Pmax。如果current_temperature = target_temp时,则k_p = k_po,这时Pmax。2、解析dts,获得switch_on_temp和target_temp。3、初始化k_pu/k_po/k_i/k_d的常数。

yxw0609131056的博客 1242

虚拟机Ubuntu连接USRP

笔记本通过网线连接USRP。

xiaozir的博客 2291

企业微信&携手Zabbix 实现监控报警

一、背景: 项目已上线,现需要做监控的告警推送,刚开始想使用邮箱,后来想还是使用企业微信的WebHook来的方便些。话不多说,以下是zabbix 使用企业微信Webhook 实现监控报警 二、环境: zabbix 5.0 企业微信机器人 备注: 本文zabbix安装步骤省略 三、zabbix 添加报警媒介 打开zabbix控制台——>管理——>报警媒介类型 点击右上角,创建媒介类型 填写名称: 企业微信机器人告警 类型: 脚本 脚本名称:

srebro.cn | 运维小弟 1511

【数字IC设计】芯片设计中的RDC

在芯片设计中,RDC是的缩写,类似于CDC(clock domain crossing),由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以在出问题的时候只复位有错误逻辑的模块,而使其它模块保持正常工作。

qq_40268672的博客 2165

zabbix5.0配置企业微信报警

1. 登录企业微信管理后台 https://work.weixin.qq.com/wework_admin/loginpage_wx?etype=expired&redirect_uri=https://work.weixin.qq.com/wework_admin/frame#contacts 这个是测试的地址 测试是否正常获取 https://work.weixin.qq.com/api/devtools/devtool.php 修改zabbix_server.conf [ro

weixin_44221035的博客 6210

LVGL 磁罗盘效果

环境:LVGL 9.x + SDL2,窗口 1280×800。界面文案用英文(默认 Montserrat,无 CJK)。本文按实现顺序讲:先建立两个耦合转动体,再把磁倾角误差从卡面倾斜里推出来,最后用同一套投影把刻度、数字和目标画到卡上。画面上的迟滞、涡流、摆动和读数偏差都来自方程,没有补间动画。

摸鱼专家 68

YOLO11改进|注意力机制篇|引入ELA注意力机制

YOLO11添加ELA注意力机制

A1983Z的博客 3639

zabbix微信报警

zabbix微信报警

weixin_46271932的博客 2901

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

zabbix 通过企业微信发送报警

通过手机号和微信号即可免费创建一个企业微信创建完成后大概就是这个样子,最下面的企业ID 一会是要用到的。点击 应用管理添加一个用来发送告警的应用创建应用后打开这个应用看到这两个位置是发送报警需要用到的新建一个标签,将需要接收到报警的人员加入这个标签,点击标签详情,找到标签ID, 这个也是发报警需要用到。然后指定应用负责人,和指定该应用能接收到消息的人。

m0_61069946的博客 1265

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【zabbix企业微信报警】

zabbix企业微信报警配置,使用python脚本进行机器人报警

sanwurensheng的博客 454

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Zabbix监控oxidized备份状态
下一篇: 虚拟化Esxi 和 华为交换机--配置链路捆绑
网络工程师_ling
博客等级 码龄7年 544粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值