本节将讲解Dumper模块中包含的的函数与类, 它们主要被用来将Wireshark捕获的文件保存至本地磁盘;
Dumper代表了Wireshark内置的文件格式化写入器(详见wtap_name_to_file_type_subtype函数);
(init.lua中的wtap_filetypes表已被废弃,只应在必须通过Wireshark 3.4.3或更早的3本上运行代码时使用;)
如果想创建Lua脚本自己的文件格式化写入器,请参考“自定义文件格式读写器(Custom file format reading/writing)”;
11.1.1.Dumper
11.1.1.1.Dumper.new(filename,[filetype],[encap])
创建一个用来写入数据包的文件,不过使用 dumper:new_for_current() 或许是一种更好的选择;
-
参数
-
filename
要创建的捕获文件的名称;
-
filetype(可选)
要创建的文件的类型——是一个由 wtap_name_to_file_type 返回的数字;
(init.lua中的wtap_filetypes表已被废弃,只应在必须通过Wireshark 3.4.3或更早的3本上运行代码时使用;)
-
encap(可选)
在要创建的捕获文件中希望使用的封装——是一个由init.lua表中的wtap_encaps表返回的数字;
-
-
返回值
- 一个新的Dumper对象;
11.1.1.2.dumper:close()
关闭一个dumper实例;
-
可能出现的错误
- Cannot operate on a closed dumper
11.1.1.3.dumper:flush()
将dumper实例中所有还未保存的数据保存至磁盘;
11.1.1.4.dumper:dump(timestamp,preudoheader,bytearray)
保存一个任意类型的数据包,不过使用 Dumper:dump_current() 能适用更多情况;
-
参数
-
timestamp
标识该数据包绝对时间的时间戳;
-
presudoheader
希望使用的PresudoHeader;
-
bytearray
需要保存的数据;
-
11.1.1.5.dumper:new_for_current([filetype])
使用与当前数据包相同的封装方式创建一个捕获文件;
-
参数
-
filetype(可选)
希望保存的文件格式,默认为pcap;
-
-
返回值
- 一个新的Dumper对象;
-
可能出现的错误
- Cannot be used outside a tap or a dissector
11.1.1.6.dumper:dump_current()
原封不动地保存当前dumper实例中的数据包;
-
可能出现的错误
- Cannot be used outside a tap or a dissector
11.1.2.PreudoHeader
一个伪头文件,用于保存捕获的帧;
11.1.2.1.PseudoHeader,none()
创建一个”空“的伪头文件(Creates a "no" pseudoheader.);
-
返回值
- 一个空伪头文件;
11.1.2.2.PseudoHeader.eth([fcslen])
创建一个以太网的伪头文件;
-
参数
-
fcslen(可选)
fcs(协议数据里的,以太网的一种校验码,表示以太网端口是否正常)的长度;
-
-
返回值
- 一个以太网伪头文件;
11.1.2.3.PseudoHeader.atm([aal], [vpi], [vci], [channel], [cells], [aal5u2u], [aal5len])
创建一个ATM 伪头文件(Creates an ATM pseudoheader.);
-
参数
-
aal(可选)
AAL number;
-
vpi(可选)
VPI;
-
vci(可选)
VCP;
-
channel(可选)
Channel;
-
cells(可选)
Number of cells in the PDU;
-
aal5u2u (可选)
AAL5 User to User indicator;
-
aal5len (可选)
AAL5 Len;
-
-
返回值
- 一个ATM伪头文件;
11.1.2.4.PseudoHeader.mtp2([sent], [annexa], [linknum])
创建一个MTP2伪头文件(Creates an MTP2 PseudoHeader.);
-
参数
-
sent (可选)
如果该数据包是用来发送的则为Ture,接收的则为False;
-
annexa (可选)
如果使用了附件A,则为True;
-
linknum (可选)
Link Number;
-
-
返回值
- 一个MTP2伪头文件;