DIY-pcap
这是什么?
自定义发包工具,可以轻易实现包交互, 实现是来自 ffi-pcap 的二次封装.
使用方法,完全自定义发包 ( 一 )
安装很简单
gem install DIY-pcap
服务端与本机需要同时安装.
准备好要发送和接收的数据放在
pcaps
目录下, 创建文件 spec.rb:pcap do |s| s.dir = "pcaps" s.send "r1.dat" s.recv "s1.dat" s.recv "s2.dat" s.send "r2.dat" end
上面的意思是, 从本机发送
r1.dat
到 服务端, 并等待接收s1.dat
,s2.dat
数据包, 之后再发送r2.dat
, 最后结束. 更多内容请参考: simple/ 里面的内容.开始发送与接收数据
服务端,执行
rpcap -f spec.rb
本机, 执行
pcap -f spec.rb
使用方法, 回放pcap报文 ( 二 )
安装同上
准备好 pcap 文件放在
pcaps/simple.pcap
目录下, 创建文件 spec.rb:require 'rubygems' require 'diy-pcap' DIY::Builder.new do pcapfile "pcaps/simple.pcap" use DIY::SimpleStrategy.new client "x.x.x.x" # 配置客户端ip, 缺省端口为7878 server "x.x.x.x" # 配置服务端ip, 缺省端口为7879 me "x.x.x.x" # 配置控制端ip, 缺省端口为7880, 以上都可以写为 x.x.x.x:x 的形式, 与 rpcap或pcap的 -i 参数对应 end
使用方法( 准备三台主机或逻辑主机, 只是试验的话可以使用
127.0.0.1
)
开始前建议重起服务端与客户端.
- 服务端, 执行
rpcap
( 如果启动出错, 请参考 rpcap -h 中参数 -i 与 -n ) - 客户端, 执行
pcap
( 如果启动出错, 请参考 pcap -h 中参数 -i 与 -n ) - 控制端, 执行
ruby spec.rb
, OK, 开始交互, 结束后, 会有 cost time 与 fail count 输出.
- (其他说明) 扩展策略, 自定义日志, 修改报文内容参见 Wiki Home.
OK, 一切如故.