wriesharek同時監聽多個埠

weixin_34054866發表於2017-11-07

之前的文章《wireshark解析自定義的protobuf協議》 ,當時只監聽了一個埠,而如果遊戲同時有二個 socket 連線,比如一個是閘道器另外一個是其它的,怎麼辦呢?

for i,port in ipairs(tcp_port) do
        tcp_port_table:add(port, m_MeteoricProto)
 end

參考連結:https://wiki.wireshark.org/Lua/Examples#Using_Lua_to_register_protocols_to_more_ports

 

 

 

wiresharek 的過濾條件可以這樣寫:

(ip.dst == 192.168.xx.xx or ip.src == 192.168.xx.xx) && tcp.len > 0

這樣顯示的基本上就是自定義解析的 socket 訊息了,關於過濾條件,更多詳情可參考官網:

https://wiki.wireshark.org/DisplayFilters

 

第一個問題,監聽多個埠,查官方文件沒找到答案。

image

 

https://wiki.wireshark.org/LuaAPI/Dissector#dissectortable:add.28pattern.2C_dissector.29

追蹤到原始碼也不是太理解

image

https://github.com/wireshark/wireshark/blob/master/epan/wslua/wslua_dissector.c

 

之後測試發現,下面二種方式也是可以的,一種表示範圍,另一種表示多個埠,與用for迴圈的效果一樣。

tcp_port_table:add("8002-8004", m_MeteoricProto)

tcp_port_table:add("8002,8003,8004", m_MeteoricProto)

相關文章