C++ rtmp livestream 流媒体

海阔天空 张翼飞翔

我的学习笔记。--我喜欢这里,因为这里安静,无广告骚扰。
随笔 - 82, 文章 - 2, 评论 - 126, 引用 - 0
数据加载中……

采用lua编写wireshark插件

 

lua编写wireshark协议分析插件参考http://wiki.wireshark.org/Lua
Wireshark已经嵌入了对Lua的支持,采用lua脚本编写的插件运行和修改很方便。不需要重新编译,只需要将wireshark重新运行就可以了,如果对效率要求不高,那么采用lua插件是一个不错的选择。下面介绍一下lua插件运行的方法。
一、编写一个文本文件,文件名rtmp.lua,在rtmp.lua文件中写如下面内容:

-- 定义协议,可以在wireshark中使用rtmp过滤
rtmp_protocol 
= Proto("1rtmp","rtmp protocol","rtmp Protocol")

-- dissector函数    
function rtmp_protocol.dissector(buffer,pinfo,tree)
    
--pinfo的成员可以参考用户手册
    pinfo.cols.protocol 
= "rtmp"
    pinfo.cols.info 
= "RTMP data"
    remain
=buffer:len()
    local subtree 
= tree:add(rtmp_protocol,buffer(),"rtmp Protocol "..remain.." (Bytes)")

end

 
tcp_table 
= DissectorTable.get("tcp.port")  
--注册到tcp的1935端口
tcp_table:add(
1935,rtmp_protocol)

 

二、插件编写完成后保存为rtmp.lua文件,放到Wireshark的安装目录。
三、编辑wireshark安装目录里面的init.lua文件,注释掉“disable_lua = true;”这一行,然后在文件的最后添加一行dofile("rtmp.lua")。
四、重新运行wireshark,按Ctrl+Shift+R,可以看到第一行有一个1RTMP协议,把前面那个钩钩选上。(我在RTMP前面加个1,目的是让协议名排在最前面方便查找,没有别的意义^!^)
五、用一个FlashPlay连接FMS服务器,再用wireshark抓包分析看看,以前显示Data的数据部分就会显示成"rtmp Protocol XX (Bytes)"。插件运行成功,剩下的事情就是完善lua程序了。

posted on 2008-06-20 18:36 ZhangEF 阅读(2925) 评论(0)  编辑  收藏 所属分类: rtmpSocket