以前的文章《wireshark解析自定義的protobuf協議》 ,當時只監聽了一個端口,而若是遊戲同時有二個 socket 鏈接,好比一個是網關另一個是其它的,怎麼辦呢?html
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_portsgit
wiresharek 的過濾條件能夠這樣寫:github
(ip.dst == 192.168.xx.xx or ip.src == 192.168.xx.xx) && tcp.len > 0socket
這樣顯示的基本上就是自定義解析的 socket 消息了,關於過濾條件,更多詳情可參考官網:tcp
https://wiki.wireshark.org/DisplayFilters測試
第一個問題,監聽多個端口,查官方文檔沒找到答案。lua
https://wiki.wireshark.org/LuaAPI/Dissector#dissectortable:add.28pattern.2C_dissector.29spa
追蹤到源碼也不是太理解code
https://github.com/wireshark/wireshark/blob/master/epan/wslua/wslua_dissector.chtm
以後測試發現,下面二種方式也是能夠的,一種表示範圍,另外一種表示多個端口,與用for循環的效果同樣。
tcp_port_table:add("8002-8004", m_MeteoricProto)
tcp_port_table:add("8002,8003,8004", m_MeteoricProto)