处理会话日志的方法及装置的制造方法

文档序号:10597136阅读:266来源:国知局
处理会话日志的方法及装置的制造方法
【专利摘要】本申请提供处理会话日志的方法及装置,所述方法包括:为每个日志存储队列分配日志服务器,所述日志存储队列的数量为N,所述日志服务器的数量为M,N和M均为大于1的自然数;从所述日志存储队列中获取会话日志信息;将所述会话日志信息写入日志发包队列;将所述日志发包队列中的会话日志信息发送至所述分配的日志服务器。应用本申请实施例有效提高了网络设备发送会话日志的性能。
【专利说明】
处理会话日志的方法及装置
技术领域
[0001] 本申请涉及网络通信技术领域,尤其涉及处理会话日志的方法及装置。
【背景技术】
[0002] 会话(Session)本义是指有始有终的一系列动作/消息,当会话与网络协议相关联 时,又包含了"面向连接"和"保持状态"两个含义。当新建会话或删除会话时,网络设备会新 建会话日志,将会话日志存储在日志存储队列中,并将日志存储队列中的会话日志发送至 日志服务器,使得日志服务器记录网络设备的溯源信息。
[0003] 现有技术中,网络设备向日志服务器发送会话日志时,需要通过控制算法,对日志 信息中的五元组参数进行计算,并根据计算结果为会话日志分配日志服务器,但是上述实 时计算处理过程会极大降低网络设备上会话日志的发送性能。

【发明内容】

[0004] 有鉴于此,本申请提供一种处理会话日志的方法及装置,以解决现有实时分配日 志服务器导致网络设备的会话日志发送性能不高的问题。
[0005] 具体地,本申请是通过如下技术方案实现的:
[0006] 根据本申请实施例的第一方面,提供一种处理会话日志的方法,所述方法应用在 网络设备上,所述方法包括:
[0007] 为每个日志存储队列分配日志服务器,所述日志存储队列的数量为N,所述日志服 务器的数量为M,N和M均为大于1的自然数;
[0008] 从所述日志存储队列中获取会话日志信息;
[0009] 将所述会话日志信息写入日志发包队列;
[0010] 将所述日志发包队列中的会话日志信息发送至所述分配的日志服务器。
[0011] 根据本申请实施例的第二方面,提供一种处理会话日志的装置,所述装置应用在 网络设备上,所述装置包括:
[0012] 第一分配单元,用于为每个日志存储队列分配日志服务器,所述日志存储队列的 数量为N,所述日志服务器的数量为M,N和M均为大于1的自然数;
[0013] 获取单元,用于从所述日志存储队列中获取会话日志信息;
[0014] 写入单元,用于将所述会话日志信息写入日志发包队列;
[0015] 发送单元,用于将所述日志发包队列中的会话日志信息发送至所述分配的日志服 务器。
[0016] 应用上述实施例,为每个日志存储队列分配日志服务器,从日志存储队列中获取 会话日志信息,将会话日志信息写入日志发包队列,将日志发包队列中的会话日志信息发 送至预先分配的日志服务器,由于本申请实施例在向日志服务器发送会话日志信息之前, 即为每个日志存储队列分配了日志服务器,从而有效提高了网络设备发送会话日志的性 能。
【附图说明】
[0017] 图1是应用本申请实施例实现处理会话日志的应用场景示意图。
[0018] 图2是本申请处理会话日志的方法的一个实施例流程图。
[0019] 图3是本申请处理会话日志的装置的一个实施例框图。
[0020] 图4是本申请处理会话日志的装置所在设备的一种硬件结构图。
【具体实施方式】
[0021] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0022] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。 在本申请和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该"也旨在包括多数 形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或"是指并包 含一个或多个相关联的列出项目的任何或所有可能组合。
[0023]应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这 些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第 一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当…… 时"或"响应于确定"。
[0024] 参见图1,为应用本申请实施例实现处理会话日志的应用场景示意图:
[0025] 如图1所示,包括终端侧、网络设备和日志服务器侧,终端侧可以有多个终端,例如 图1示出的终端1至终端n(n为大于1的自然数),其中每个终端均与网络设备连接,网络设备 为两个可以互相通信的终端在新建会话或删除会话时生成会话日志,网络设备上可以包括 多个日志存储队列,该日志存储队列用于存储会话日志,日志服务器侧可以有多个日志服 务器,例如图1中示出的日志服务器1至日志服务器m(m为大于1的自然数)。可以理解的是, 本实施例中的终端仅以电脑为例进行说明,实际应用中终端可以是手机或平板电脑等其它 终端,网络设备可以是路由器或交换机等设备。
[0026] 参见图2,为本申请处理会话日志的方法的一个实施例流程图,所述方法应用在网 络设备上,所述网络设备包括有多个用于缓存会话日志的日志存储队列,包括以下步骤:
[0027] 步骤S201:为每个日志存储队列分配日志服务器,所述日志存储队列的数量为N, 所述日志服务器的数量为M,N和M均为大于1的自然数。
[0028] 实际应用中,一台网络设备可能连接多个终端,网络设备为两个可以互相通信的 终端在新建会话或删除会话时生成会话日志,可以在网络设备上设置多个日志存储队列用 于缓存会话日志。网络设备可以将会话日志发送至日志服务器,由日志服务器对会话日志 进行统一管理。
[0029] 日志服务器实现了大量设备会话日志的集中存储管理,根据这些会话日志可以对 网络状况、网络安全进行监管,通过分析会话日志可以掌握信息发布等服务的应用情况,方 便改进服务质量。日志服务器有一定的存储空间和处理内存,为了实现大量会话日志的管 理,在网络架构中,可以有多台日志服务器,每台日志服务器有不同的处理能力。可以参见 图1,假设日志服务器的数量为M,网络设备上日志存储队列的数量为N,预先根据每台日志 服务器不同的处理能力分配不同的权重,则可以通过下述日志服务器分配控制算法实现基 于日志服务器的权重为每个日志存储队列分配日志服务器。
[0030]所述日志服务器分配控制算法可以包括:分别获得与日志服务器的权重对应的整 数!^ i为1到M的自然数);将每个日志服务器分别映射为1\个虚拟日志服务器,共映射为S个 虚拟日志服务器;判断日志存储队列的数量N能否被S整除,若能整除,且商为q,则为每个虚 拟日志服务器分别分配q个日志存储队列;若不能整除,且商为q,余数为r,那么,为其中r个 虚拟日志服务器分别分配q+1个日志存储队列,为剩余S_r个虚拟日志服务器分别分配q个 日志存储队列;根据日志存储队列与虚拟日志服务器的分配关系以及虚拟日志服务器与日 志服务器的映射关系生成日志存储队列与日志服务器的分配关系,网络设备还可以保存日 志存储队列与日志服务器的分配关系,方便之后的操作。
[0031] 举例来说,假设日志存储队列的数量为10个,分别为91161161、9116116 2、9116116 3、 queue4、queue5、queue6、queue7、queue8、queue9、queue 10,假设日志服务器的数量为 3个, 分别为A1、A2、A3,假设3个日志服务器各自的权重如表1所示:
[0032]表 1
[0035]~则可以将3个日志服务器映射为8个虚拟日志服务器,如表2所示,为日志服务器与 虚拟日志服务器的映射关系:
[0036]表 2
[0038] 则可以根据上述日志服务器分配控制算法分别为日志存储队列分配日志服务器, 过程如下:
[0039] 10/8= 1余2,即q=l,r = 2,那么,为其中2个虚拟日志服务器分别分配2个日志存 储队列,为剩余的6个虚拟日志服务器分别分配1个日志存储队列。如下表3所示,为按照上 述日志服务器分配控制算法计算得出的日志存储队列与虚拟日志服务器的分配关系:
[0040] 表 3

[0042] 继而可以根据表2与表3得出日志存储队列与日志服务器的分配关系,如表4所示:
[0043] 表 4
[0045] 需要说明的是,如上述表1至表4所示,仅仅是以示例说明日志服务器的分配,本申 请不对其分配顺序做限制,另外,日志服务器分配控制算法不限于上述描述,本申请对此不 做限定。
[0046] 在一个可选的实现方式中,为每个日志存储队列分配日志服务器之后,还可以为 每个日志存储队列添加所分配的日志服务器的标识。
[0047] 步骤S202:从所述日志存储队列中获取会话日志信息。
[0048] 为了使每个日志存储队列都有内存空间容纳新生成的会话日志,可以预先设置日 志存储队列的排列顺序,假设日志存储队列的排列顺序为queuel、queue2、queue3、queue4、 queue5、queue6、queue7、queue8、queue9、queuel0,则可以按照顺序依次循环从日志存储队 列中获取会话日志,从日志存储队列中获取会话日志时可以遵循队列的"先进先出"原则, 但获取到的会话日志并不是立即存储在日志发包队列中,而是根据预先设置的规则获取一 组目标日志字段作为会话日志信息。
[0049] 在一个可选的实现方式中,会话日志通常只是一段文本,其中的不同字段表示不 同的含义,不同的应用程序或者不同的网络环境中产生的日志格式并不相同。
[0050] 日志格式定义了会话日志的形成,传输,存储,审核,以及分析的方式,任何格式的 日志都具有语法,日志语法在概念上与语言(如英语)语法相似。每条会话日志每部分由各 种类型的信息组成,基于日志语法规则,可以定义一组通用的日志字段,该组通用的日志字 段有着必要性,因此存在于每条会话日志中。例如,常见的一组日志字段如下:
[0051] (1)日期/时间
[0052] (2)日志条目的类型
[0053] (3)产生该条目的系统
[0054] (4)产生该条目的应用程序或组件
[0055] (5)成功与失败的指示
[0056] (6)日志消息的严重性、优先级或重要性
[0057] (7)和该日志相关的任何用户活动,也可记录用户名
[0058] 举例来说,假设当前从日志存储队列中出队的会话日志为用户访问请求相关的会 话日志,那么,可以使用预先设置的规则获取会话日志中的IPdnternet Protocol,网络之 间互联的协议)地址、时间、HTTP(Hyper Text Transfer Protocol,超文本传输协议)状态 码、响应内容的长度以及User Agent(用户代理)等日志字段,将这些日志字段作为会话日 志信息。
[0059] 需要说明的是,上述仅以通用日志字段组作为示例说明日志字段的组成方式,本 申请对此不做限制。
[0060] 步骤S203:将所述会话日志信息写入日志发包队列中。
[0061] 在本申请实施例中,可以预先配置报文头,以及一些固定的报文体,将步骤S202获 取到的会话日志信息写入日志发包队列中,按照预先设定的规则,将日志发包队列中的会 话日志信息与所述预先配置的报文头,以及一些固定的报文体构造成会话日志发送报文, 所述会话日志发送报文可以有固定的长度。
[0062] 在一个可选的实现方式中,可以采用聚合会话日志信息的方式将会话日志信息写 入日志发包队列中,即可以将两条或两条以上的会话日志信息构造在一条会话日志发送报 文中。由于并不是所有的会话日志信息都可以聚合,因此聚合会话日志信息时,可以先判断 当前从日志存储队列中获得的会话日志信息与当前日志发包队列中的会话日志信息能否 聚合。当步骤S201中为每个日志存储队列添加了所分配的日志服务器的标识后,在会话日 志发送报文的长度有限制的情况下,则判断当前从日志存储队列中获得的会话日志信息与 当前日志发包队列中的会话日志信息能否聚合的条件除了根据两者的类型与格式是否相 同外,还可以根据两者所属的日志存储队列的日志服务器的标识是否一致,即判断所要聚 合的会话日志信息是否发往同一个日志服务器。举例来说,按照步骤S202中预置的日志存 储队列的排列顺序,从日志存储队列queuel中获取会话日志sessionA,并将SessionA的会 话日志信息写入日志发包队列中,并且网络设备在此过程中记录了日志存储队列queuel所 分配的日志服务器的标识A1,之后从日志存储队列queue2中获取会话日志sessionB的会话 日志信息时,判断上述已记录的日志服务器的标识A1与日志存储队列q UeUe2的日志服务器 的标识是否一致,若两者的日志服务器的标识一致,还可以继续判断当前日志发包队列中 的会话日志信息与sessionB的会话日志信息的类型与格式是否一致,若两者的类型与格式 一致,则获取会话日志sessionB的会话日志信息,并按照预先设定的规则写入日志发包队 列中,与当前日志发包队列中的会话日志信息聚合,当两者的日志服务器的标识或两者的 类型与格式不一致时,则将此时日志发包队列中已聚合的会话日志信息构造在会话日志发 送报文中。
[0063] 在另一个可选的实现方式中,也可以不采用上述聚合会话日志信息的方式,而是 向日志发包队列写入一条会话日志信息后,即将写入的会话日志信息构造在会话日志发送 报文中。
[0064] 在上述两个实现方式中,还可以在从日志存储队列中获取会话日志信息之前预先 为日志发包队列分配固定的存储空间,从而省去了为日志发包队列重复申请内存和释放内 存的操作过程,尤其是在会话日志信息量很大的情况下,可以有效的提高效率,优化网络设 备发送会话日志的性能。
[0065]步骤S204:将所述日志发包队列中的会话日志信息发送至所述分配的日志服务 器。
[0066]执行完步骤S203,将会话日志信息写入日志发包队列中,并按照预先设置的规则 构造了会话日志发送报文,根据所述添加的日志服务器的标识将会话日志发送报文发送至 所述分配的日志服务器。
[0067]应用上述实施例,为每个日志存储队列分配日志服务器,从日志存储队列中获取 会话日志信息,将会话日志信息写入日志发包队列,将日志发包队列中的会话日志信息发 送至预先分配的日志服务器,由于本申请实施例在向日志服务器发送会话日志信息之前, 即为每个日志存储队列分配了日志服务器,从而有效提高了网络设备发送会话日志的性 能。
[0068]与前述处理会话日志的方法的实施例相对应,本申请还提供了处理会话日志的装 置的实施例。
[0069] 本申请处理会话日志装置的实施例可以应用在网络设备上。装置实施例可以通过 软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意 义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令 读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请处理会话日志的装置所 在网络设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储 器之外,实施例中装置所在的网络设备通常根据该网络设备的实际功能,还可以包括其他 硬件,对此不再赘述。
[0070]请参考图3,为本申请处理会话日志的装置的一个实施例框图,所述装置包括第一 分配单元310,获取单元320,写入单元330,发送单元340。
[0071 ]其中,所述第一分配单元310,用于为每个日志存储队列分配日志服务器,所述日 志存储队列的数量为N,所述日志服务器的数量为M,N和M均为大于1的自然数;
[0072] 所述获取单元320,用于从所述日志存储队列中获取会话日志信息;
[0073] 所述写入单元330,用于将所述会话日志信息写入日志发包队列;
[0074] 所述发送单元340,用于将所述日志发包队列中的会话日志信息发送至所述分配 的日志服务器。
[0075] 在一个可选的实现方式中,所述第一分配单元310可以包括(图3中未示出):第一 获取子单元、映射子单元、第一判断子单元、分配子单元、生成子单元,其中,所述第一获取 子单元,用于分别获得与日志服务器的权重对应的整数TK i为1到M的自然数);
[0076] 所述映射子单元,用于将每个日志服务器分别映射为1\个虚拟日志服务器,共计S 个虚拟日志服务器;
[0077] 所述第一判断子单元,用于判断所述日志存储队列的数量N能否被S整除;
[0078] 所述分配子单元,用于数量N能被S整除,且商为q,则为每个虚拟日志服务器分配q 个日志存储队列;数量N不能被S整除,且商为q,余数为r,则为其中r个虚拟日志服务器分别 分配q+1个日志存储队列,为剩余S_r个虚拟日志服务器分别分配q个日志存储队列;
[0079] 所述生成子单元,用于根据日志存储队列与虚拟日志服务器的分配关系以及虚拟 日志服务器与日志服务器的映射关系生成日志存储队列与日志服务器的分配关系。
[0080] 在另一个可选的实现方式中,所述装置还可以包括(图3中未示出):添加单元,所 述添加单元用于为每个所述日志存储队列添加所述分配的日志服务器的标识;
[0081] 所述发送单元340可以包括(图3中未示出):第一发送子单元,所述第一发送子单 元,用于根据所述添加的日志服务器标识将所述日志发包队列中的会话日志信息发送至所 述分配的日志服务器。
[0082] 在另一个可选的实现方式中,所述写入单元可以包括(图3中未示出):第二判断子 单元、聚合子单元,其中,所述第二判断子单元,用于当采用聚合会话日志信息的方式时,判 断所述会话日志信息与当前日志发包队列中的会话日志信息所属的日志存储队列的日志 服务器的标识是否一致;
[0083] 所述聚合子单元,用于所述会话日志信息与当前日志发包队列中的会话日志信息 所属的日志存储队列的日志服务器标识一致时,将所述会话日志信息写入日志发包队列 中,与日志发包队列中的会话日志信息聚合。
[0084] 在另一个可选的实现方式中,所述获取单元320包括(图3中未示出):提取子单元、 第二获取子单元,其中,所述提取子单元,用于按照预先设置的日志存储队列的排列顺序, 依次循环提取所述日志存储队列中的会话日志;
[0085] 所述第二获取子单元,用于按照预设的规则从所述会话日志中获取日志字段作为 会话日志信息。
[0086] 在另一个可选的实现方式中,所述装置还可以包括(图3中未示出):第二分配单 元,用于为日志发包队列分配固定存储空间。
[0087] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的 实现过程,在此不再赘述。
[0088] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实 施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以 不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的 需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付 出创造性劳动的情况下,即可以理解并实施。
[0089] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【主权项】
1. 一种处理会话日志的方法,其特征在于,所述方法应用在网络设备上,所述网络设备 上包括多个用于缓存会话日志的日志存储队列,所述方法包括: 为每个日志存储队列分配日志服务器,所述日志存储队列的数量为N,所述日志服务器 的数量为M,N和M均为大于1的自然数; 从所述日志存储队列中获取会话日志信息; 将所述会话日志信息写入日志发包队列; 将所述日志发包队列中的会话日志信息发送至所述分配的日志服务器。2. 根据权利要求1所述的方法,其特征在于,所述为每个所述日志存储队列分配日志服 务器包括: 分别获得与日志服务器的权重对应的整数Ti(i为1到M的自然数); 将每个日志服务器分别映射为!\个虚拟日志服务器,共计S个虚拟日志服务器; 判断所述日志存储队列的数量N能否被S整除; 若能整除,且商为q,则为每个虚拟日志服务器分配q个日志存储队列; 若不能整除,且商为q,余数为r,则为其中r个虚拟日志服务器分别分配q+Ι个日志存储 队列,为剩余S_r个虚拟日志服务器分别分配q个日志存储队列; 根据日志存储队列与虚拟日志服务器的分配关系以及虚拟日志服务器与日志服务器 的映射关系生成日志存储队列与日志服务器的分配关系。3. 根据权利要求1所述的方法,其特征在于,所述为每个所述日志存储队列分配日志服 务器之后,还包括: 为每个所述日志存储队列添加所述分配的日志服务器的标识; 所述将所述日志发包队列中的会话日志信息发送至所述分配的日志服务器包括: 根据所述日志服务器的标识将所述日志发包队列中的会话日志信息发送至所述分配 的日志服务器。4. 根据权利要求3所述的方法,其特征在于,所述将所述会话日志信息写入日志发包队 列包括: 当采用聚合会话日志信息的方式时,判断所述会话日志信息与当前日志发包队列中的 会话日志信息所属的日志存储队列的日志服务器的标识是否一致,若一致,将所述会话日 志信息写入日志发包队列中,与日志发包队列中的会话日志信息聚合。5. 根据权利要求1所述的方法,其特征在于,所述从所述日志存储队列中获取会话日志 信息包括: 按照预先设置的日志存储队列的排列顺序,依次循环提取所述日志存储队列中的会话 日志; 按照预设的规则从所述会话日志中获取目标日志字段作为会话日志信息。6. 根据权利要求1所述的方法,其特征在于,所述从所述日志存储队列中获取会话日志 信息之前,还包括: 为日志发包队列分配固定存储空间。7. -种处理会话日志的装置,其特征在于,所述装置应用在网络设备上,所述网络设备 上包括多个用于缓存会话日志的日志存储队列,所述装置包括: 第一分配单元,用于为每个日志存储队列分配日志服务器,所述日志存储队列的数量 为N,所述日志服务器的数量为M,N和M均为大于1的自然数; 获取单元,用于从所述日志存储队列中获取会话日志信息; 写入单元,用于将所述会话日志信息写入日志发包队列; 发送单元,用于将所述日志发包队列中的会话日志信息发送至所述分配的日志服务 器。8. 根据权利要求7所述的装置,其特征在于,所述第一分配单元包括: 第一获取子单元,用于分别获得与日志服务器的权重对应的整数T1U为1到M的自然 数); 映射子单元,用于将每个日志服务器分别映射为!\个虚拟日志服务器,共计S个虚拟日 志服务器; 第一判断子单元,用于判断所述日志存储队列的数量N能否被S整除; 分配子单元,用于数量N能被S能整除,且商为q,则为每个虚拟日志服务器分配q个日志 存储队列;若数量N不能被S整除,且商为q,余数为r,则为其中r个虚拟日志服务器分别分配 q+Ι个日志存储队列,为剩余S_r个虚拟日志服务器分别分配q个日志存储队列; 生成子单元,用于根据日志存储队列与虚拟日志服务器的分配关系以及虚拟日志服务 器与日志服务器的映射关系生成日志存储队列与日志服务器的分配关系。9. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 添加单元,用于为每个所述日志存储队列添加所述分配的日志服务器的标识; 所述发送单元包括:第一发送子单元,用于根据所述日志服务器的标识将所述日志发 包队列中的会话日志信息发送至所述分配的日志服务器。10. 根据权利要求9所述的装置,其特征在于,所述写入单元包括: 第二判断子单元,用于当采用聚合会话日志信息的方式时,判断所述会话日志信息与 当前日志发包队列中的会话日志信息所属的日志存储队列的日志服务器的标识是否一致; 聚合子单元,用于所述会话日志信息与当前日志发包队列中的会话日志信息所属的日 志存储队列的日志服务器标识一致时,将所述会话日志信息写入日志发包队列中,与日志 发包队列中的会话日志信息聚合。11. 根据权利要求7所述的装置,其特征在于,所述获取单元包括: 提取子单元,用于按照预先设置的日志存储队列的排列顺序,依次循环提取所述日志 存储队列中的会话日志; 第二获取子单元,用于按照预设的规则从所述会话日志中获取目标日志字段作为会话 日志信息。12. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 第二分配单元,用于为日志发包队列分配固定存储空间。
【文档编号】G06F17/30GK105959252SQ201510769450
【公开日】2016年9月21日
【申请日】2015年11月12日
【发明人】刘世贞
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1