From 469d58b34ea4dac3b8f3927db64e1403f2bfa4a1 Mon Sep 17 00:00:00 2001 From: nightwing Date: Tue, 3 Mar 2015 21:08:52 +0400 Subject: [PATCH] display real ip instead of 0.0.0.0 --- configs/standalone.js | 5 +++-- .../connect/connect-plugin.js | 21 ++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/configs/standalone.js b/configs/standalone.js index 0b736075..22a63d77 100644 --- a/configs/standalone.js +++ b/configs/standalone.js @@ -93,7 +93,7 @@ module.exports = function(config, optimist) { if (!/:/.test(argv.auth) && !isLocalhost) { console.log("Authentication is required when not running on localhost.\nPlease use -a user:pass or --listen localhost to listen locally."); console.log("switching to localhost"); - host == "127.0.0.1"; + host = config.host = "127.0.0.1"; } var auth = (argv.auth || ":").split(":"); @@ -102,7 +102,8 @@ module.exports = function(config, optimist) { packagePath: "connect-architect/connect", port: port, host: host, - websocket: true + websocket: true, + showRealIP: !config.mode }, { packagePath: "connect-architect/connect.basicauth", diff --git a/node_modules/connect-architect/connect/connect-plugin.js b/node_modules/connect-architect/connect/connect-plugin.js index 6e646868..133df8d6 100644 --- a/node_modules/connect-architect/connect/connect-plugin.js +++ b/node_modules/connect-architect/connect/connect-plugin.js @@ -127,7 +127,10 @@ module.exports = function startup(options, imports, register) { if (err) return register(err); - console.log("Connect server listening at " + proto + "://" + host + ":" + port); + console.log("Connect server listening at " + proto + "://" + + (host == "0.0.0.0" && options.showRealIP + ? getLocalIPs()[0] + : host) + ":" + port); register(null, { "onDestruct": function(callback) { @@ -210,6 +213,22 @@ module.exports = function startup(options, imports, register) { return handle; } + + function getLocalIPs() { + var os = require("os"); + + var interfaces = os.networkInterfaces ? os.networkInterfaces() : {}; + var addresses = []; + for (var k in interfaces) { + for (var k2 in interfaces[k]) { + var address = interfaces[k][k2]; + if (address.family === "IPv4" && !address.internal) { + addresses.push(address.address); + } + } + } + return addresses; + } }; function merge(objects) {