本公开涉及计算机技术领域,更具体地,涉及一种报文分析方法、装置、服务器及存储介质。
背景技术:
云计算是一种按使用量付费商业模式。这种模式为租户提供便捷、按需的网络访问和可配置的资源池(包括计算、存储及网络资源),租户部署在资源池上的应用系统能够根据需要获取计算力、存储空间和信息服务。
在现有技术的云计算场景中,对云网络产品进行的功能自动化测试,常常需要对tcp/ip协议网络报文进行抓取和分析,以验证是否符合预期。
通常情况下,是通过tcpdump命令及正则表达式来进行定向抓包,并通过验证抓到的报文是否符合预期。但是,对于一些报文具有自定义的内容,需要检查的字段值往往是未知的,如tcp报文的自定义字段,对于验证报文中的自定义字段的内容,需要手工进行环境部署和配置下发,然后通过命令行进行抓包,将报文下载到本地,再通过wireshark等工具进行报文分析。然而,此类测试步骤较多,配置也相对复杂,手工执行的效率低下且容易出错。
技术实现要素:
本公开的一个目的是提供一种报文分析的新的技术方案。
根据本公开实施例的第一方面,提供了一种报文分析方法,该方法包括:
根据预设的抓包命令,抓取目标报文;
获取所述目标报文中的预设的特征值,其中,所述目标报文包括自定义字段,所述特征值至少包括自定义字段的固定值和所述自定义字段中目标值的偏移量;
根据所述特征值,获取所述自定义字段中的所述目标值。
可选地,在获取所述目标报文中的预设的特征值之前,还包括:
将所述目标报文转换为预设的数据格式并保存。
可选地,所述根据所述特征值,获取所述自定义字段中的所述目标值,包括:
在所述目标报文中搜索所述固定值,得到第一搜索结果;
在所述第一搜索结果表示搜索成功的情况下,根据所述目标值的偏移量,获取所述自定义字段中的所述目标值。
可选地,所述特征值还包括所述自定义字段的对标验证值和目标固定值相对于所述对标验证值的偏移量,
所述根据所述特征值,获取所述自定义字段中的所述目标值,还包括:
在所述目标报文中搜索所述固定值,得到第二搜索结果;
在所述第二搜索结果表示搜索成功的情况下,根据所述固定值和目标固定值相对于所述对标验证值的偏移量,搜索所述对标验证值,得到第三搜索结果;
在所述第三搜索结果表示搜索成功的情况下,确定所述固定值为所述目标固定值;
根据所述目标固定值和所述目标值的偏移量,获取所述自定义字段中的所述目标值。
可选地,所述特征值还包括所述自定义字段的对标验证值和目标固定值相对于对标验证值的偏移量,
所述根据所述特征值,获取所述自定义字段中的所述目标值,还包括:
在所述目标报文中搜索所述对标验证值,得到第四搜索结果;
在所述第四搜索结果表示搜索成功的情况下,根据所述对标验证值和目标固定值相对于所述对标验证值的偏移量,搜索所述固定值,得到第五搜索结果;
在所述第五搜索结果表示搜索成功的情况下,确定所述固定值为所述目标固定值;
根据所述目标固定值和所述目标值的偏移量,获取所述自定义字段中的所述目标值。
可选地,所述在获取所述自定义字段中的所述目标值之后,还包括:
验证所述目标值,获得验证结果。
可选地,所述验证所述目标值,获得验证结果,包括:
将所述目标值和预设的目标值进行比较,获得比较结果;
在所述比较结果表示所述目标值和预设的目标值相同的情况下,确定所述验证结果为验证成功。
根据本公开实施例的第二方面,提供了一种报文分析装置,其包括:
抓取模块,用于根据预设的抓包命令,抓取目标报文;
第一获取模块,用于获取所述目标报文中的预设的特征值,其中,所述目标报文包括自定义字段,所述特征值至少包括自定义字段的固定值和所述自定义字段中的目标值偏移量;
第二获取模块,根据所述特征值,获取所述自定义字段中的所述目标值。
根据本公开实施例的第三方面,提供了一种服务器,其包括处理器和存储器,所述存储器中存储有计算机指令,所述计算机指令被所述处理器执行时,实现以上第一方面所述的方法。
根据本公开实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行根据以上第一方面所述的方法。
根据本公开实施例的报文分析方法、装置、服务器及存储介质,其在根据预设的抓包命令抓取待测试的目标报文后,会基于目标报文中的自定义字段的固定值和自定义字段中目标值的偏移量,自动获取自定义字段中的目标值,即,本公开实施例实现了针对带有自定义字段的网络报文分析的自动化测试,相比手工测试,大幅提高了测试效率和准确率。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是可用于实现本公开实施例的服务器的硬件配置的框图。
图2是根据本公开实施例的报文分析方法的示意性流程图;
图3是根据本公开另一实施例的报文分析方法的示意性流程图;
图4是根据本公开一个例子的报文分析方法的验证结果示意图;
图5是根据本公开实施例的报文分析装置的原理框图;
图6是根据本公开实施例的服务器的原理框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
现有技术中,对云网络产品的测试,unix系统下是通过tcpdump命令及正则表达式来进行定向抓包,并通过验证抓到的报文是否符合预期。但是,对于一些具有自定义字段的报文,例如tcp报文的options字段,该字段是由网关进行自定义封装的,抓包命令无法直接识别该字段,也就不能对这些字段进行测试。因此,针对含有自定义字段的报文的测试,需要测试人员手动进行环境部署和配置下发,然后抓取待测试的报文,并将该报文下载到本地,再通过wireshark等工具对下载好的报文进行分析。此方法步骤较多,配置也相对复杂,手工执行的效率低下且容易出错。
<名词解释>
tcpdump命令是一个用于截取网络分组,并输出分组内容的工具。tcpdump具有灵活的截取策略,其支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来去掉无用的信息。
wireshark是一个网络封包分析软件,其用于撷取网络封包,并尽可能显示出最为详细的网络封包资料。wireshark使用winpcap作为接口,从而直接与网卡进行数据报文交换。
tcp报文是传输控制协议(transmissioncontrolprotocol,tcp)层传输数据的数据单元。
upd报文是用户数据报协议(userdatagramprotocol,udp)层传输数据的数据单元。
http报文是超文本传输协议(hypertexttransferprotocol,http)层传输数据的数据单元。
pcap格式是常用的数据报存储格式,可以理解为是一种文件格式,只不过里面的数据是按照特定格式存储的。
<硬件配置>
图1是可用于实现本公开任意实施例的报文分析方法的一种服务器的硬件结构示意图。
如图1所示,该服务器1000包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600。处理器1100例如可以是中央处理器cpu等。存储器1200例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括usb接口、串行接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏。输入装置1600例如可以包括触摸屏、键盘等。
本领域技术人员应当理解,尽管在图1中示出了服务器1000的多个装置,但是,本公开实施例的服务器1000可以仅涉及其中的部分装置,例如,只涉及处理器1100和存储器1200。这是本领域公知,此处不再赘述。
应用于本实施例中,存储器1200用于存储计算机程序指令,该指令用于控制处理器1100进行操作以执行根据本公开任意实施例的报文分析方法。技术人员可以根据本发明所公开方案设计该指令。该指令如何控制处理器1100进行操作,这是本领域公知,故在此不再详细描述。
在另一个例子中,服务器1000可以包括根据本公开任意实施例的报文分析装置5000,用于实施本公开任意实施例的报文分析方法。
<方法实施例>
图2是根据本公开实施例的报文分析方法的流程示意图,如图2所示,该方法可以包括如下步骤s2100~s2300:
步骤s2100,根据预设的抓包命令,抓取目标报文。
预设的抓包命令可以是tcpdump命令,该tcpdump命令基于报文中的报文元素抓取报文。该报文元素为可以包括源ip地址、目的ip地址、源端口和目的端口中的任意一项或多项,以及包括协议号、服务类型和接口索引中的任意一项或多项。
目标报文是待验证的报文,该报文的协议不做限定,例如可以是tcp报文、upd报文、http报文等,当然,还可以是其他报文。
示例性地,待验证的报文为tcp报文,例如可以基于该tcp报文中的目的ip地址抓取该tcp报文,该目的地址可以是2.1.2.11,例如抓取到的tcp报文的option自定义字段为“lbvip:vport-localip:localport”,其中,lb表示负载均衡,vip:vport表示负载均衡所使用的ip地址和端口号,localip:localport表示本机地址(本机指的是执行本步骤的服务器)和端口号,该option自定义字段的具体内容可以为“lbvip10.131.25.15vport80,localip10.100.33.239,localport2048”,其中,lb负载均衡所使用的ip地址和端口号分别为10.131.25.15和80,本机地址和端口号分别为10.100.33.239和2048。
自定义字段为报文中的特定字段,该自定义字段中需要检查的字段值往往是未知的,因此,相关技术中是通过命令行进行抓包,将报文下载到本地,再通过wireshark等工具进行人工验证,而本公开实施例基于目标报文中的特征值对自定义字段中的值进行自动化验证。
在本实施例中,在执行步骤s2100之后,还可以是将目标报文转换为预设的数据格式并保存。
预设的数据格式可以是十六进制格式、八进制格式、二进制格式等。
继续上述示例,可以是将以上抓取到的tcp报文先转换为十六进制格式并按照字节保存为pcap格式的文本,并例如可以将所有字节存放有索引值的数组中,在此,转换为十六进制格式在于十六进制格式的文本数据比较容易分析。该pcap格式为抓取网络数据包的标准格式。例如,该tcp报文中option自定义字段的十六进制格式的具体内容为“ea0e08000a6421ef00500a83190f”,其中,ea表示tcpoption,0e表示tcpoption长度是14字节,0800表示本机端口号2048的十六进制数值,0a6421ef表示本机地址10.100.33.239的十六进制数值,0050表示lb负载均衡所使用的端口号80的十六进制数值,0a83190f表示lb负载均衡所使用的ip地址10.131.25.15的十六进制数值。
步骤s2200,获取目标报文中的预设的特征值。
目标报文中包括自定义字段,目标报文中的预设的特征值至少可以包括自定义字段的固定值和自定义字段中目标值的偏移量。
以上自定义字段的固定值包括目标报文的自定义字段的标识和该自定义字段的长度,继续以以上目标报文为tcp报文为例,以上自定义字段的固定值可以为ea0e,其中,ea表示自定义字段的标识tcpoption,0e表示自定义字段的长度是14字节。
以上自定义字段中的目标值为最终所要分析的内容,继续以以上目标报文为tcp报文为例,以上lblocalip的值为目标值,即为最终所要分析的内容。
以上自定义字段中目标值的偏移量为目标值相对于固定值的位置,继续以以上目标报文为tcp报文为例,由于以上lblocalip的值为目标值,在此,由于该目标值是在ea0e这个固定值后边的第3到第6个字节,因此,该固定值ea0e后边的第3个字节到第6个字节表示目标值的偏移量。
示例性地,通常预先知道要从以上tcp报文中获取lblocalip字段的值(实际测试时这个ip是未知的),根据对option自定义字段的以上解释,知道lblocalip一定是在ea0e这个值后边的第3个字节到第6个字节(lblocalport的值0800占了前2个字节)。其中,lblocalip字段的值就是以下步骤s2300中的需要获取的目标值,ea0e表示固定值,第3个字节到第6个字节表示目标值的偏移量。
步骤s2300,根据特征值,获取自定义字段中的目标值。
在一个例子中,目标报文中的特征值可以包括自定义字段的固定值和自定义字段中目标值的偏移量。
该例子中,本步骤s2300中根据特征值,获取自定义字段中的目标值可以进一步包括如下步骤s2311~s2312:
步骤s2311,在目标报文中搜索固定值,得到第一搜索结果。
例如可以是从以上tcp报文中第0个字节遍历搜索固定值ea0e,直至搜索到ea0e之后(假如索引坐标是a),表示搜索成功。
步骤s2312,在第一搜索结果表示搜索成功的情况下,根据目标值的偏移量,获取自定义字段中的目标值。
继续上述步骤s2311的示例,在搜索成功即在tcp报文中搜索到ea0e的情况下,直接从这个ea0e位置后的第3个字节到第6个字节(目标值的偏移量)获取lblocalip字段的值,可以得知,获取到的lblocalip的值为“0a6421ef”。
在一个例子中,自定义字段的特征值包括自定义字段的对标验证值和目标固定值相对于对标验证值的偏移量。
该例子中,本步骤s2300中根据特征值,获取自定义字段中的目标值可以进一步包括如下步骤s2321~s2324:
步骤s2321,在目标报文中搜索固定值,得到第二搜索结果。
例如可以是从整个tcp报文中第0个字节遍历搜索固定值ea0e,搜索到ea0e之后(假如索引坐标是a),由于某个其他字段也可能会存在ea0e,从而导致此时并不确定搜索到的这个ea0e是否为要找的固定值,因此,需要结合对标验证值进一步来确定这个ea0e是否为要找的固定值。
步骤s2322,在第二搜索结果表示搜索成功的情况下,根据固定值和目标固定值相对于对标验证值的偏移量,搜索对标验证值,得到第三搜索结果;
继续上述步骤s2321的示例,例如tcp报文中ea0e的前24位后的连续4字节是一个ip层的目的地址0201020b(十进制2.1.2.11),该目的地址0201020b即为对标验证值,该24位就是目标固定值相对于对标验证值的偏移量,如果根据步骤s2321搜索到ea0e的情况下,则进一步从ea0e往前推24位,看能否搜索到目的地址0201020b。
步骤s2323,在第三搜索结果表示搜索成功的情况下,确定固定值为目标固定值。
继续上述步骤s2322的示例,如果根据步骤s2322搜索到目的地址0201020b的情况下,则将该固定值ea0e确定为目标固定值,如果根据步骤s2322没有搜索到目的地址0201020b的情况下,则继续根据步骤s2321搜索该固定值ea0e的下一个字节。
步骤s2324,根据目标固定值和目标值的偏移量,获取自定义字段中的目标值。
继续上述步骤s2323的示例,在确定该目标固定值ea0e之后,直接从这个eaoe位置后的第3个到第6个字节(目标值的偏移量)获取需要的lblocalip,可以得知,获取到的lblocalip的值为“0a6421ef”。
在一个例子中,自定义字段的特征值包括以上自定义字段的对标验证值和目标固定值相对于对标验证值的偏移量。
该例子中,本步骤s2300中根据特征值,获取自定义字段中的目标值可以进一步包括如下步骤s2331~s2334:
步骤s2331,在目标报文中搜索对标验证值,得到第四搜索结果。
例如可以是先从以上tcp报文中搜索目的地址0201020b,在搜索到目的地址0201020b的情况下,继续执行步骤s2331,搜索不到则结束。
步骤s2332,在第四搜索结果表示搜索成功的情况下,根据对标验证值和目标固定值相对于对标验证值的偏移量,搜索固定值,得到第五搜索结果。
继续上述步骤s2331的示例,在根据步骤s2331搜索到目的地址0201020b的情况下,可以从0201020b之后在找24位,看能否搜索到固定值ea0e,如果能够搜索到ea0e,则继续步骤s2333,搜索不到则结束。
步骤s2333,在第五搜索结果表示搜索成功的情况下,确定固定值为目标固定值。
继续上述步骤s2332的示例,如果根据步骤s2332搜索到ea0e的情况下,则将该固定值eaoe确定为目标固定值。
步骤s2334,根据目标固定值和目标值的偏移量,获取自定义字段中的目标值。
继续上述步骤s2333的示例,在确定该目标固定值eaoe之后,直接从这个eaoe位置后的第3个到第6个字节(目标值的偏移量)获取需要的lblocalip,可以得知,获取到的lblocalip的值为“0a6421ef”。
根据本公开实施例的报文分析方法,其在根据预设的抓包命令抓取待测试的目标报文后,会基于获取到的目标报文中的自定义字段的固定值和自定义字段中目标值的偏移量,自动获取自定义字段中的目标值,即,本公开实施例实现了针对带有自定义字段的网络报文分析的自动化测试,相比手工测试,大幅提高了测试效率和准确率。
在一个实施例中,在根据以上步骤s2300获取自定义字段的目标值之后,还包括步骤s2400验证目标值,获得验证结果,以根据该验证结果判断目标值是否符合预期。
本实施例中,该步骤s2400验证目标值,获得验证结果可以进一步包括如下步骤s2410~s2420:
步骤s2410,将目标值和预设的目标值进行比较,获得比较结果。
示例性地,在根据以上步骤s2300获取到自定义字段的目标值:lblocalip的值为“0a6421ef”的情况下,可以将该目标值和预设的目标值“0a6421ef”进行比较。
步骤s2420,在比较结果表示目标值和预设的目标值相同的情况下,确定验证结果为验证成功。
继续上述步骤s2420的示例,根据图4所示根据步骤s2410得到的比较结果为目标值和预设的目标值相同的情况下,表示验证成功,反之,则验证失败(图中未示出)。
<装置实施例>
在本实施例中,还提供一种报文分析装置,如图5所示,该装置5000可以包括抓取模块5100,第一获取模块5200和第二获取模块5300。
抓取模块5100,用于根据预设的抓包命令,抓取目标报文。
第一获取模块5200,用于获取所述目标报文中的预设的特征值,其中,所述目标报文包括自定义字段,所述特征值至少包括自定义字段的固定值和所述自定义字段中的目标值偏移量。
第二获取模块5300,用于根据所述特征值,获取所述自定义字段中的所述目标值。
在一个实施例中,该装置5000还包括保存模块(图中未示出)。
该保存模块,用于在第一获取模块5200获取所述目标报文中的预设的特征值之前,将所述目标报文转换为预设的数据格式并保存。
在一个实施例中,该第二获取模块5300,用于在所述目标报文中搜索所述固定值,得到第一搜索结果;在所述第一搜索结果表示搜索成功的情况下,根据所述目标值的偏移量,获取所述自定义字段中的所述目标值。
在一个实施例中,所述特征值还包括所述自定义字段的对标验证值和目标固定值相对于所述对标验证值的偏移量。
该第二获取模块5300,用于在所述第二搜索结果表示搜索成功的情况下,根据所述固定值和目标固定值相对于所述对标验证值的偏移量,搜索所述对标验证值,得到第三搜索结果;在所述第三搜索结果表示搜索成功的情况下,确定所述固定值为所述目标固定值;根据所述目标固定值和所述目标值的偏移量,获取所述自定义字段中的所述目标值。
在一个实施例中,所述特征值还包括所述自定义字段的对标验证值和目标固定值相对于对标验证值的偏移量。
该第二获取模块5300,用于在所述目标报文中搜索所述对标验证值,得到第四搜索结果;在所述第四搜索结果表示搜索成功的情况下,根据所述对标验证值和目标固定值相对于所述对标验证值的偏移量,搜索所述固定值,得到第五搜索结果;在所述第五搜索结果表示搜索成功的情况下,确定所述固定值为所述目标固定值;根据所述目标固定值和所述目标值的偏移量,获取所述自定义字段中的所述目标值。
在一个实施例中,该装置5000还包括验证模块(图中未示出)。
该验证模块,用于在第二获取模块5300获取所述自定义字段中的所述目标值之后,验证所述目标值,获得验证结果。
在一个实施例中,该验证模块,将所述目标值和预设的目标值进行比较,获得比较结果;在所述比较结果表示所述目标值和预设的目标值相同的情况下,确定所述验证结果为验证成功。
<服务器实施例>
本公开实施例提供了一种服务器,包括处理器和存储器,存储器中存储有计算机指令,计算机指令被处理器执行时,实现前述任一实施例提供的报文处理方法。
<介质实施例>
在本实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本公开以上任意实施例所述的方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
1.一种报文分析方法,包括:
根据预设的抓包命令,抓取目标报文;
获取所述目标报文中的预设的特征值,其中,所述目标报文包括自定义字段,所述特征值至少包括自定义字段的固定值和所述自定义字段中目标值的偏移量;
根据所述特征值,获取所述自定义字段中的所述目标值。
2.根据权利要求1所述的方法,其特征在于,在获取所述目标报文中的预设的特征值之前,还包括:
将所述目标报文转换为预设的数据格式并保存。
3.根据权利要求1所述的方法,其特征在于,所述根据所述特征值,获取所述自定义字段中的所述目标值,包括:
在所述目标报文中搜索所述固定值,得到第一搜索结果;
在所述第一搜索结果表示搜索成功的情况下,根据所述目标值的偏移量,获取所述自定义字段中的所述目标值。
4.根据权利要求1所述的方法,其特征在于,所述特征值还包括所述自定义字段的对标验证值和目标固定值相对于所述对标验证值的偏移量,
所述根据所述特征值,获取所述自定义字段中的所述目标值,还包括:
在所述目标报文中搜索所述固定值,得到第二搜索结果;
在所述第二搜索结果表示搜索成功的情况下,根据所述固定值和目标固定值相对于所述对标验证值的偏移量,搜索所述对标验证值,得到第三搜索结果;
在所述第三搜索结果表示搜索成功的情况下,确定所述固定值为所述目标固定值;
根据所述目标固定值和所述目标值的偏移量,获取所述自定义字段中的所述目标值。
5.根据权利要求1所述的方法,其中,其特征在于,所述特征值还包括所述自定义字段的对标验证值和目标固定值相对于对标验证值的偏移量,
所述根据所述特征值,获取所述自定义字段中的所述目标值,还包括:
在所述目标报文中搜索所述对标验证值,得到第四搜索结果;
在所述第四搜索结果表示搜索成功的情况下,根据所述对标验证值和目标固定值相对于所述对标验证值的偏移量,搜索所述固定值,得到第五搜索结果;
在所述第五搜索结果表示搜索成功的情况下,确定所述固定值为所述目标固定值;
根据所述目标固定值和所述目标值的偏移量,获取所述自定义字段中的所述目标值。
6.根据权利要求1所述的方法,其特征在于,所述在获取所述自定义字段中的所述目标值之后,还包括:
验证所述目标值,获得验证结果。
7.根据权利要求6所述的方法,其特征在于,所述验证所述目标值,获得验证结果,包括:
将所述目标值和预设的目标值进行比较,获得比较结果;
在所述比较结果表示所述目标值和预设的目标值相同的情况下,确定所述验证结果为验证成功。
8.一种报文分析装置,包括:
抓取模块,用于根据预设的抓包命令,抓取目标报文;
第一获取模块,用于获取所述目标报文中的预设的特征值,其中,所述目标报文包括自定义字段,所述特征值至少包括自定义字段的固定值和所述自定义字段中的目标值偏移量;
第二获取模块,用于根据所述特征值,获取所述自定义字段中的所述目标值。
9.一种服务器,包括处理器和存储器,所述存储器中存储有计算机指令,所述计算机指令被所述处理器执行时,实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行根据权利要求1-7中任意一项所述的方法。
技术总结