1.效果如下
2.后台代码
app.post('/pings', function(req, res) {
//ping
if (req.body.tyspes == "Ping") {
let ping = require('child_process').spawn('ping', [req.body.ip]);
let iconv = require('iconv-lite');
var all = ""
// var logname = __dirname + '/' + 'log.txt';
ping.stdout.on('data', data => {
// fs.writeFileSync(logname, iconv.decode(data, 'cp936'))
// let info = fs.readFileSync(logname, 'utf8')
all += iconv.decode(data, 'cp936')
// res.send(info)
// console.log(info)
})
ping.stderr.on('data', data => {
// console.log(data);
})
ping.on('close', code => {
console.log('data:', all);
res.send(all)
})
} else {
//toraceroute
const Traceroute = require('nodejs-traceroute');
var all2 = ""
const tracer = new Traceroute();
tracer
.on('pid', (pid) => {
all2 += `pid: ${pid} \n`;
})
.on('destination', (destination) => {
all2 += `destination: ${destination} \n`;
})
.on('hop', (hop) => {
all2 += `hop: ${JSON.stringify(hop)} \n`;
})
.on('close', (code) => {
all2 += `close: code ${code}`;
res.send(all2)
});
tracer.trace(req.body.ip);
}
})