Lua脚本从wireshark .pcap跟踪中提取信息

时间:2014-05-08 22:54:47

标签: lua wireshark

我想得到第一个没有在sosDIS端口上通信的数据包的帧时间(相对),而ip地址不是if语句中提到的那个。但是数据包应该使用端口24111.但是,下面的代码不能用于此目的。它有效,直到我添加udp_port~=24111。之后它没有给我任何结果,这意味着它不会进入条件语句。我试图以多种方式编写条件,甚至将其分成新的if语句,但它不起作用。我在这做错了什么。提前感谢您的建议。 这是我目前的一段代码

    local first_outpacket = 0
    local flag = 0
    function stats_first_packet()
        local udp_port
        local frame_time
        local ip_addr
        frame_time = time_relative_extractor()
        udp_port = udp_port_extractor()
        ip_addr = ip_addr_extractor()
        if ( udp_port ) then
            if (not (udp_port == 3000 or udp_port==3838 or flag==1 or ip_addr=="192.168.1.2" or udp_port~=24111)) then
                first_outpacket = frame_time
                print(frame_time)
                flag = 1
            else
                -- print("tcp_src_port already recorded")
            end
        else
            -- print("no tcp_src_port")
        end
    end

1 个答案:

答案 0 :(得分:1)

问题显然在于extractor()函数返回的数据类型。为了将它们与if语句中的另一个值进行比较,必须使用tostring()函数将它们转换为字符串。 例如:

if (not (tostring(udp_port) == "3000" or tostring(udp_port)=="3838" or flag==1))