使用lua指令碼進行報文修改

2021-09-12 15:54:46 字數 2673 閱讀 9079

local  gettcpstream=field.new("tcp.stream);   -- 通過field類,來建立tcp.stream的類物件

local getsrcip=field.new("ip.src");

local getdatip=field.new("ip.dst");

local getsrcport=field.new("tcp.srcport");

local getdstport=field.new("tcp.dstport");

local getipversion=field.new(:ip.version");

local tcpstreamtable=; --每一條tcp流的雜湊索引表

local datawritertable=; --每一條流的dumper物件

--frame是***的名稱,tcp是wireshark過濾器規則

--tvb:bytes表示將報文資料放到乙個位元組陣列中(bytearray物件),然後在該陣列上就可以根據索引進行修改等操作。

--get_index獲取具體索引值

--set_index設定具體索引中的內容

--bytearray_fri:set_index(16,newiplen/256);

--bytearray_fri:set_index(17,newiplen%256);

datawritertable[tcpstreamnumber];

--dump(arrivaltime,pseudoheader.eth(0),bytearray_fri);

else

datawritetable[tcpstreamnumber];

dump_current();

endelse

local packettuple4=tostring(tcpstream).."_"..tostring(srcip).."_"..tostring(srcport).."_"..tostring(dstip).."_"..tostring(dstport).."_''..tostring(ipversion)..".pcap";

oldpcapname=packettuple4;

tcpstreamtable[tcpstreamnumber]=tcpstream;

datawritertable[tcpstreamnumber]=dumper.new(packettuple4);

datawritertable[tcpstreamnumber]:dump_current();

--print(type(tcpstreamtable[tcpstreamnumber]),type(tcpstreamnumber),type(datawritertable[tcpstreamnumber]),type(tcpstreamtable));

end

endfunction tap.draw()

print("tap draw");

--os.rename(oldpcapname,newpcapname);

endendpacket_listener();

end

Redis使用lua指令碼

版本 自2.6.0起可用。時間複雜度 取決於執行的指令碼。使用lua指令碼的好處 命令格式 eval script numkeys key key arg arg 說明 簡單例項 127.0.0.1 6379 eval return ar 1 0 100 100 127.0.0.1 6379 eva...

Redis使用lua指令碼

版本 自2.6.0起可用。時間複雜度 取決於執行的指令碼。使用lua指令碼的好處 命令格式 copy eval script numkeys key key arg arg 說明 簡單例項 copy 127.0.0.1 6379 eval return ar 1 0 100 100 127.0.0....

Nginx 使用Lua指令碼

etc profile 加入並使之生效 lua exportluajit lib usr local luajit lib exportluajit inc usr local luajit include luajit 2.0 執行 source etc profile ndk nginx dev...