scapy.plist

PacketList:保存多个数据包并允许对其进行操作.

class scapy.plist.PacketList(res=None, name='PacketList', stats=None)

Bases: scapy.base_classes.BasePacketList, scapy.base_classes._CanvasDumpExtended

afterglow(src=None, event=None, dst=None, **kargs)

http://sourceforge.net/projects/afterglow实验性克隆尝试将每个数据减少为src-> event-> dst并绘制数据. 默认情况下,我们有IP.src-> IP.dport-> IP.dst

canvas_dump(**kargs)
conversations(getsrcdst=None, **kargs)

绘制源和目的地之间的对话的图形并显示(使用graphviz和imagemagick)

Parameters
  • getsrcdst –一个函数,它接受列表的元素,并返回源,目标以及可选的标签. 默认情况下,从IP和ARP层返回IP源和目标

  • 类型 –输出类型(svg,ps,gif,jpg等),传递给点的" -T"选项

  • 目标 –文件名或重定向. 默认管道到Imagemagick的显示程序

  • –使用哪个graphviz程序

convert_to(other_cls, name=None, stats=None)

将所有数据包转换为另一种类型.

有关更多信息,请参见Packet.convert_to .

Parameters
  • other_clsType [ scapy.packet.Packet ] )–引用要转换为的Packet类

  • name可选 [ str ] )–新PacketList的可选名称

  • stats可选 [ List [ 类型 [ scapy.packet.Packet ] ] ] )–可选的统计信息列表; 如果未指定,则从此PacketList继承.

Return type

scapy.plist.PacketList

diffplot(f, delay=1, lfilter=None)

将函数应用于耦合(l [i],l [i + delay])

返回matplotlib.lines.Line2D的列表.

display()

不推荐使用. 是show()

filter(func)

返回由真函数过滤的数据包列表. 该真值函数必须将数据包作为唯一参数,并返回布尔值.

getlayer(cls, nb=None, flt=None, name=None, stats=None)

返回给定层的数据包列表.

有关更多信息,请参见Packet.getlayer .

Parameters
  • cls类型 [ scapy.packet.Packet ] )–搜索作为cls实例的图层

  • nb可选 [ int ] )–返回作为cls实例的第nb ^层

  • flt可选 [ Dict [ str Any ] ] )– Packet.getlayer过滤器参数

  • name可选 [ str ] )–新PacketList的可选名称

  • stats可选 [ List [ 类型 [ scapy.packet.Packet ] ] ] )–可选的统计信息列表; 如果未指定,则从此PacketList继承.

Return type

scapy.plist.PacketList

hexdump(lfilter=None)

与nsummary()相同,除了包也是十六进制转储的lfilter:决定是否必须显示包的真函数

hexraw(lfilter=None)

与nsummary()相同,不同之处在于如果数据包具有Raw层,则将其十六进制转储#noqa:E501 lfilter:决定是否必须显示数据包的真函数

listname
make_lined_table(*args, **kargs)

与make_table相同,但打印带有行的表

make_table(*args, **kargs)

使用一个函数打印表格,该函数为每个数据包返回其首列值,首行值和显示值#noqa:E501例如:p.make_table(lambda x:(x [IP] .dst,x [TCP] .dport, x [TCP] .sprintf("%flags%"))

make_tex_table(*args, **kargs)

Same as make_table, but print a table with LaTeX syntax

multiplot(f, lfilter=None, plot_xy=False, **kargs)

使用一个函数,该函数返回标签和该标签的值,然后按标签绘制所有值.

返回matplotlib.lines.Line2D的列表.

nsummary(prn=None, lfilter=None)

打印每个数据包的摘要以及数据包的编号

Parameters
  • prn –应用于每个数据包的函数,而不是lambda x:x.summary()

  • lfilter –应用于每个数据包以决定是否显示的真值函数

nzpadding(lfilter=None)

与padding()相同,但仅非null填充

padding(lfilter=None)

与hexraw()相同,用于填充层

plot(f, lfilter=None, plot_xy=False, **kargs)

将函数应用于每个数据包以获取将使用matplotlib绘制的值. 返回matplotlib.lines.Line2D的列表.

lfilter:一个真函数,用于确定是否必须绘制数据包

rawhexdump()

打印列表中每个数据包的十六进制转储

replace(<field>, [<oldvalue>, ]<newvalue>)
lst.replace( (fld,[ov],nv),(fld,[ov,]nv),…)

如果ov为None,则替换所有值

ex:

lst.replace(IP.src," 192.168.1.1"," 10.0.0.1")lst.replace(IP.ttl,64)lst.replace((IP.ttl,64),(TCP.sport,666,777 ),)

res
sessions(session_extractor=None)
show(*args, **kargs)

显示数据包列表的最佳方法. 默认为nsummary()方法

sr([multi=1]) -> (SndRcvList, PacketList)

匹配列表中的数据包并返回((匹配对),(不匹配数据包))

stats
summary(prn=None, lfilter=None)

打印每个数据包的摘要

Parameters
  • prn –应用于每个数据包的函数,而不是lambda x:x.summary()

  • lfilter –应用于每个数据包以决定是否显示的真值函数

timeskew_graph(ip, **kargs)

尝试绘制给定ip的时间戳和实时之间的时间偏差

class scapy.plist.SndRcvList(res=None, name='Results', stats=None)

Bases: scapy.plist.PacketList