[英]How to get data from pcap in node.js
我想在node.js中獲取pcap的數據,例如幀號,幀時間,ip等。 但是,我找不到我想要的任何模塊。 因此,我嘗試使用tshark。 但是結果值被削減了。 那我怎么得到完美的結果呢?
以下是我嘗試過的一些細節。
var spawn = require('child_process').spawn;
var fs = require('fs');
var args = [
'-Tfields',
'-e', 'frame.number',
'-e', 'frame.time',
'-e', 'ip.src',
'-e', 'ip.dst',
'-e', 'ip.proto',
'-e', 'tcp.srcport',
'-e', 'tcp.dstport',
'-e', 'udp.srcport',
'-e', 'udp.srcport',
'-e', 'udp.dstport',
'-e', 'ip.len',
'-E', 'header=y',
'-r', 'smallFlows.pcap'
];
var cmd = spawn('tshark', args, {
cwd: 'C:\\Program Files\\Wireshark\\'
});
cmd.stdout.on('data', function(data) {
console.log('done!');
fs.writeFile('result.txt', data, function(err) {
if(err) throw err;
console.log('It\'s saved!');
});
});
cmd.stderr.on('data', function(data) {
});
cmd.on('exit', function(code) {
console.log('child process exited with code ' + code);
});
您無法假設傳遞給data
事件處理程序的數據塊的大小。 它可以是一個字節,也可以是子進程的整個輸出。
如果您只想將輸出寫入文件,則可以通過管道將其輸出:
var cmd = spawn('tshark', args, {
cwd: 'C:\\Program Files\\Wireshark\\'
});
cmd.stdout.pipe(fs.createWriteStream('result.txt')).on('finish', function() {
console.log('File completely written');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.