一种设备信息获取方法、装置、设备及介质与流程

文档序号:29423336发布日期:2022-03-26 14:38阅读:76来源:国知局
一种设备信息获取方法、装置、设备及介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种设备信息获取方法、装置、设备及介质。


背景技术:

2.现有技术中,很多情况下需要用到多个甚至大批量的设备来完成业务或工作,这其中如何获得各个设备的设备信息是非常重要的课题。
3.有鉴于此,需要更高效的设备信息获取方案。


技术实现要素:

4.本说明书实施例提供一种设备信息获取方法、装置、设备及介质,用以解决如何更高效地获取设备信息的技术问题。
5.为解决上述技术问题,本说明书实施例提供如下技术方案:
6.本说明书实施例提供一种设备信息获取方法,包括:
7.确定目标设备,向各目标设备发送公钥信息,以使所述目标设备存储所述公钥信息;
8.对任一目标设备,根据私钥信息验证该目标设备存储的公钥信息,并在验证通过后登陆该目标设备;
9.向该目标设备发送设备信息获取命令,以获取该目标设备的设备信息,并展示获取到的目标设备的设备信息。
10.可选的,向各目标设备发送公钥信息包括:执行密钥分发脚本,以向各目标设备发送公钥信息;
11.或,
12.确定目标设备,向各目标设备发送公钥信息,包括:
13.分别确定各目标设备的ip信息,向各ip信息对应的目标设备发送公钥信息。
14.可选的,确定目标设备,向各目标设备发送公钥信息,包括:
15.构建包含各目标设备的ip信息的ip信息列表,依次向所述ip信息列表中各ip信息对应的目标设备发送公钥信息。
16.可选的,向该目标设备发送设备信息获取命令包括:执行设备信息获取脚本,以向该目标设备发送设备信息获取命令。
17.可选的,所述设备信息包括ip信息和mac地址信息。
18.可选的,所述方法还包括:
19.对任一目标设备,获取到该目标设备的设备信息后,建立该目标设备的ip信息和该目标设备的mac地址信息的绑定关系。
20.可选的,展示获取到的目标设备的设备信息包括:
21.按照所述绑定关系,展示获取到的目标设备的设备信息。
22.本说明书实施例提供一种设备信息获取装置,包括:
23.定向模块,用于确定目标设备,向各目标设备发送公钥信息,以使所述目标设备存储所述公钥信息;
24.登录模块,用于对任一目标设备,根据私钥信息验证该目标设备存储的公钥信息,并在验证通过后登陆该目标设备;
25.获取模块,用于向该目标设备发送设备信息获取命令,以获取该目标设备的设备信息,并展示获取到的目标设备的设备信息。
26.本说明书实施例提供一种设备信息获取设备,包括:
27.至少一个处理器;
28.以及,
29.与所述至少一个处理器通信连接的存储器;
30.其中,
31.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行上述的设备信息获取方法。
32.本说明书实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述的设备信息获取方法。
33.本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
34.上述技术方案在进行密钥验证后登陆目标设备,通过设备信息获取命令自动获取各目标设备的设备信息,提高了设备信息获取效率和安全性。
附图说明
35.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对本说明书实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面介绍的附图仅仅是本说明书中记载的实施例可能涉及的部分附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1是本说明书第一个实施例中的设备信息获取方法的执行主体示意图。
37.图2是本说明书第一个实施例中的设备信息获取方法的流程示意图。
38.图3是本说明书第一个实施例中的设备信息获取过程示意图。
39.图4是本说明书第二个实施例中的设备信息获取装置的结构示意图。
具体实施方式
40.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例的附图,对本说明书实施例的技术方案清楚、完整地进行描述。显然,本说明书所描述的实施例仅仅是本技术的部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
41.现有技术中,很多情况下需要用到多个甚至大批量的设备来完成业务或工作,这其中如何获得各个设备的设备信息是非常重要的课题。
42.本说明书第一个实施例(以下简称“实施例一”)提供了一种设备信息获取方法,实施例一的执行主体可以是终端(包括但不限于手机、计算机、pad、电视)或者服务器或者操作系统或者应用程序,或者设备信息获取平台或者设备信息获取系统等,即执行主体可以是多种多样的,可以根据需要设置、使用或者变换执行主体。另外,也可以有第三方应用程序协助所述执行主体执行实施例一。例如图1所示,可以由服务器来执行实施例一中的设备信息获取方法,并且可以在(用户所持有的)终端上安装(与所述服务器)相对应的应用程序,终端或应用程序与服务器之间可以进行数据传输,通过终端或应用程序来进行数据的采集或输入或输出或(向用户)进行页面或信息处理,从而辅助服务器执行实施例一中的设备信息获取方法。
43.如图2所示,实施例一提供的设备信息获取方法包括:
44.s101:(执行主体)确定目标设备,向各目标设备发送公钥信息,以使所述目标设备存储所述公钥信息;
45.实施例一的执行主体(例如图3中的admin)可以确定目标设备,所述目标设备即需要向实施例一的执行主体提供设备信息的设备。其中,所述目标设备可以是服务器(例如图3中的server)或其他种类的设备。例如,实施例一的执行主体可以将用于执行同一项业务的各设备作为目标设备,或者,可以将连接到同一网络的各设备作为目标设备。实施例一对目标设备的形式或数量或确定方式不作限定。
46.确定各目标设备后,实施例一的执行主体可以将其持有的公钥信息(公钥信息即公钥相关的信息,可以是公钥本身)发送给各目标设备,即向各目标设备发送公钥信息,以使各目标设备获取所述公钥信息并存储所述公钥信息。
47.实施例一的执行主体可以确定各目标设备,也就可以确定各目标设备的ip信息(即ip地址信息),故确定目标设备,向各目标设备发送公钥信息,可以包括:分别确定各目标设备的ip信息,向所确定的各ip信息对应的目标设备发送公钥信息。即实施例一的执行主体确定各目标设备可能是确定目标设备的设备名称,还需要确定各目标设备的ip信息,向所确定的各ip信息对应的设备(即各目标设备)发送公钥信息。
48.另外,确定目标设备,向各目标设备发送公钥信息,可以包括:构建包含各目标设备的ip信息的ip信息列表(ip信息列表用于定义各ip信息),依次向所述ip信息列表中各ip信息对应的目标设备发送公钥信息,即按照ip信息列表中的ip信息顺序,依次向各ip信息对应的目标设备发送公钥信息。一个具体示例可以是:构建hosts.ini文件,hosts.ini文件中包含所述ip信息列表。
49.实施例一中,可以为实施例一的执行主体预先构建密钥分发脚本,则向各目标设备发送公钥信息可以包括:执行密钥分发脚本,以便向各目标设备发送公钥信息。一个具体示例可以是:实施例一的执行主体上可以安装ansible系统,构建密钥分发脚本文件(例如命名为ssh_key.yml),其中通过authorized_key方法定义密钥分发脚本文件中的密钥分发策略。密钥分发脚本可以通过实施例一的执行主体构建,或通过其他设备构建并发送给实施例一的执行主体。实施例一的执行主体执行密钥分发脚本,按照所述密钥分发策略,向各目标设备发送公钥信息,包括依次向所述ip信息列表中各ip信息对应的目标设备发送公钥信息。此仅为示例,不用于限定实施例一。
50.s103:(执行主体)对任一目标设备,根据私钥信息验证该目标设备存储的公钥信
息,并在验证通过后登陆该目标设备;
51.对任一目标设备,实施例一的执行主体向该目标设备发送公钥信息后,实施例一的执行主体可以执行登录该目标设备的操作。登录该目标设备的操作包括:实施例一的执行主体自动输入该目标设备的登录用户名和登录密码,以及实施例一的执行主体根据自身存储的私钥信息,验证该目标设备存储的公钥信息(即实施例一的执行主体验证其自身存储的私钥信息与该目标设备存储的公钥信息是否匹配);验证通过后(即验证匹配),实施例一的执行主体登录该目标设备。例如该目标设备是服务器,则验证通过后,实施例一的执行主体登录该服务器的服务器系统。特别的,验证不通过,则实施例一执行主体无法登陆该目标设备,以保证登陆该目标设备的确实是实施例一的执行主体,也保证实施例一的执行主体登录了正确的目标设备。
52.s105:(执行主体)向该目标设备发送设备信息获取命令,以获取该目标设备的设备信息,并展示获取到的目标设备的设备信息。
53.对任一目标设备,实施例一的执行主体登录该目标设备后,可以向该目标设备发送设备信息获取命令。
54.实施例一中,可以为实施例一的执行主体预先构建设备信息获取脚本,则向该目标设备发送设备信息获取命令可以包括:执行设备信息获取脚本,以向该目标设备发送设备信息获取命令。
55.实施例一中,设备信息可以包括ip信息和mac地址信息。
56.如上,实施例一的执行主体上可以安装ansible系统。构建设备信息获取脚本的一个具体示例可以是:新建文件夹,在新建的文件夹中编写ansible目录树,包含:roles,groups,hosts.ini(如上所述)。构建总执行脚本(例如使用mac-ip.yml文件定义总执行脚本,对应设备信息可以包括ip信息和mac地址信息),用于执行roles(即角色,代表目标设备)中的内容。构建groups变量脚本env.yml,用于定义全局变量信息(全局变量信息可以是各目标设备的共同特征,可以包括目标设备名这样的变量),供roles调用。构建roles中的特定信息(所述特定信息可以由目标设备执行,例如所述特定信息是使目标设备向实施例一的执行主体发送其设备信息的指令),在roles文件夹下的tasks文件夹中可以存放roles的具体脚本。在所述tasks文件夹下构建main.yml,用于指定使目标设备提供设备信息的脚本。构建playbook获取ip信息和mac地址信息脚本,使用shell方法定义执行命令,并在目标设备执行发送其设备信息的脚本后,将目标设备发送的设备信息输出至指定文件,例如所述指定文件命名为mac-ip.txt。总结起来,实施例一的执行主体执行设备信息获取脚本的顺序可以是ansible-playbook-i hosts.ini mac-ip.yml。例如图3所示。
57.即对任一目标设备,实施例一的执行主体向该目标设备发送设备信息获取命令,以获取该目标设备的设备信息,可以包括:实施例一的执行主体登录该目标设备后,使用shell方法,将设备信息获取命令发送给该目标设备。该目标设备将其设备信息发送给实施例一的执行主体,实施例一的执行主体将该目标设备的设备信息保存到所述指定文件中。
58.上述内容中的脚本或文件夹的命名仅为示例,不用于限定实施例一。
59.实施例一中,可以在获取到上一个目标设备的设备信息后,再向下一个目标设备发送公钥信息,以使所述下一个目标设备存储所述公钥信息;根据私钥信息验证所述下一个目标设备存储的公钥信息,并在验证通过后登陆所述下一个目标设备;向所述下一个目
标设备发送设备信息获取命令,以获取所述下一个目标设备的设备信息。
60.对任一目标设备,实施例一的执行主体获取到该目标设备的设备信息后,可以建立该目标设备的设备信息之间的绑定关系。例如,设备信息包括ip信息和mac地址信息,则实施例一的执行主体获取到该目标设备的设备信息后,可以建立该目标设备的ip信息和该目标设备的mac地址信息的绑定关系,即每个目标设备的ip信息和mac地址信息是一对相互绑定的设备信息。
61.获取一个或多个目标设备的设备信息后,实施例一的执行主体可以展示获取到的(目标设备的)设备信息。其中,展示获取到的目标设备的设备信息可以包括:通过所述指定文件展示获取到的目标设备的设备信息。或者,展示获取到的目标设备的设备信息可以包括:按照任一目标设备的设备信息之间的绑定关系,展示获取到的该目标设备的设备信息。例如通过列表形式展示各目标设备的设备信息,且具有绑定关系的设备信息通过预设形式进行展示,以表征设备信息之间的绑定关系。例如将每对具有绑定关系的设备信息放在设备信息列表的同一行中进行展示。
62.实施例一的执行主体可以每获取到一个目标设备的设备信息,就在已展示的设备信息中增加新获取到的设备信息,以展示新获取到的设备信息。例如,每获取到一个目标设备的设备信息,该目标设备的设备信息就被保存在所述指定文件中用于展示。
63.实施例一中,在进行密钥验证后登陆目标设备,提高安全性。通过设备信息获取命令使各目标设备自动向实施例一的执行主体发送其设备信息,从而实施例一的执行主体自动获取和展示各目标设备的设备信息,提高了设备信息获取效率和安全性。由于实施例一可以自动获取各目标设备的设备信息,免去了人工逐一查看各设备的设备信息的繁琐步骤,能够有效降低人工成本和耗时。
64.由上可知,实施例一尤其适用于获取大批量的目标设备的设备信息。
65.通过获取目标设备的设备信息,可以对目标设备进行管理,例如在对目标设备进行上下线或其他操作时,可能需要用到目标设备的设备信息。则通过实施例一自动获取各目标设备的设备信息后,可以直接利用各目标设备的设备信息对各目标设备进行上下线或其他操作,提高对目标设备的管理效率。
66.如图4所示,本说明书第二个实施例提供一种与实施例一所述设备信息获取方法对应的设备信息获取装置,包括:
67.定向模块202,用于确定目标设备,向各目标设备发送公钥信息,以使所述目标设备存储所述公钥信息;
68.登录模块204,用于对任一目标设备,根据私钥信息验证该目标设备存储的公钥信息,并在验证通过后登陆该目标设备;
69.获取模块206,用于向该目标设备发送设备信息获取命令,以获取该目标设备的设备信息,并展示获取到的目标设备的设备信息。
70.可选的,向各目标设备发送公钥信息包括:执行密钥分发脚本,以向各目标设备发送公钥信息;
71.或,
72.确定目标设备,向各目标设备发送公钥信息,包括:
73.分别确定各目标设备的ip信息,向各ip信息对应的目标设备发送公钥信息。
74.可选的,确定目标设备,向各目标设备发送公钥信息,包括:
75.构建包含各目标设备的ip信息的ip信息列表,依次向所述ip信息列表中各ip信息对应的目标设备发送公钥信息。
76.可选的,向该目标设备发送设备信息获取命令包括:执行设备信息获取脚本,以向该目标设备发送设备信息获取命令。
77.可选的,所述设备信息包括ip信息和mac地址信息。
78.可选的,所述获取模块206,还用于对任一目标设备,获取到该目标设备的设备信息后,建立该目标设备的ip信息和该目标设备的mac地址信息的绑定关系。
79.可选的,展示获取到的目标设备的设备信息包括:
80.按照所述绑定关系,展示获取到的目标设备的设备信息。
81.本说明书第三个实施例提供一种设备信息获取设备,包括:
82.至少一个处理器;
83.以及,
84.与所述至少一个处理器通信连接的存储器;
85.其中,
86.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行实施例一所述的设备信息获取方法。
87.本说明书第四个实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现实施例一所述的设备信息获取方法。
88.上述各实施例可以结合使用,不同实施例之间或同一实施例内的名称相同的模块可以是相同或不同的模块。
89.上述对本说明书特定实施例进行了描述,其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,附图中描绘的过程不一定必须按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
90.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
91.本说明书实施例提供的装置、设备、非易失性计算机可读存储介质与方法是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。
92.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因
此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
93.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
94.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
95.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
96.本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
97.本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的
流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
98.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
99.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
100.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
101.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
102.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
103.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
104.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
105.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
106.以上所述仅为本说明书实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1