UNPKG

cmdserver-l

Version:

a toy server that returns the results of running shell commands in HTTP requests

51 lines (44 loc) 1.19 kB
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 }