rubyバイナリファイルを読み込む(natファイル、まずそれを解析しない)

1670 ワード

実験は172.18.1.217機械の/m 8/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]# 

その結果、同じファイルが生成されます.つまり、解析されていません.