cmdserver-l
Version:
a toy server that returns the results of running shell commands in HTTP requests
51 lines (44 loc) • 1.19 kB
JavaScript
var http = require('http');
var cp = require('child_process');
var url = require('url');
var server = http.createServer((req, res) => {
var reqUrl = url.parse(req.url, true);
var cmd = reqUrl.query.cmd;
console.log('command: ' + cmd);
cp.exec(cmd, (error, stdout, stderr) => {
if (error) {
console.log(error);
return;
}
res.write(stdout.toString());
res.end();
});
});
server.listen(2223, () => {
console.log('cmd server started at:');
console.log(server.address());
printIP();
});
function printIP() {
var os = require('os');
var ifaces = os.networkInterfaces();
Object.keys(ifaces).forEach(function (ifname) {
var alias = 0;
ifaces[ifname].forEach(function (iface) {
if ('IPv4' !== iface.family || iface.internal !== false) {
// skip over internal (i.e. 127.0.0.1) and non-ipv4 addresses
return;
}
if (alias >= 1) {
// this single interface has multiple ipv4 addresses
console.log(ifname + ':' + alias, iface.address);
} else {
// this interface has only one ipv4 adress
console.log(ifname, iface.address);
}
++alias;
});
});
// en0 192.168.1.101
// eth0 10.0.0.101
}