美文网首页
ruby读取二进制文件(nat文件,先不解析那种)

ruby读取二进制文件(nat文件,先不解析那种)

作者: 风恋绝尘 | 来源:发表于2016-12-25 00:30 被阅读0次

    实验在172.18.1.217机器的/m8/ruby目录下
    这个实验是先不解析,相当于复制二进制文件
    vim parseNatData

    nat_read_file = File.open("NATLOG_280000069469_20160919211200_0000.DAT","rb")
    write_file = File.new("NATLOG_280000069469_20160919211200_0000.DAT.txt","wb")
    
    while true
            begin
                    read_file = nat_read_file.sysread(1) #读取一个字节 type:NAT日志文件类型说明
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(6) #读取6个字节 action-type:session
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(4) #读取4个字节 source-address:源IP
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(4) #读取4字节 nat-source-address:NAT后的源IP
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(2) #读取2字节 nat-source-port--begin:NAT后的起始端口
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(2) #读取2字节 nat-source-port-end:NAT后的结束端口
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(8) #读取8字节 Timestamp:开始时间或者结束时间
                    write_file.syswrite(read_file)
                    read_file = nat_read_file.sysread(4) #读取4字节 elapsed-time:持续时间
                    write_file.syswrite(read_file)
            rescue => e
                    puts e.message
                    break
            end
    end
    puts "OK"
    nat_read_file.close
    write_file.close
    
    [root@master1 ruby]# ruby parseNatData.rb
    end of file reached
    OK
    [root@master1 ruby]# 
    

    结果会生成一个一模一样的文件,也就是没有解析

    相关文章

      网友评论

          本文标题:ruby读取二进制文件(nat文件,先不解析那种)

          本文链接:https://www.haomeiwen.com/subject/qcurvttx.html