Commit 86474755 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Obtiene sólo IPs locales para exponer en testeo

Filtra las IPs descubiertas automáticamente, descartando aquellas que no
son locales (clase A y clase C). Las locales de clase B también se
descartan, ya que son usadas por las interfaces de Docker.
parent 2dd7c41d
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
module.exports = function(args) {

	var os = require('os'),
		interfaces = os.networkInterfaces();
		interfaces = os.networkInterfaces(),
		localIpExpr = /(^10\.)|(^192\.168\.)/gi;

	function pushValidAddress(ipList, addressProps) {

		if ('IPv4' !== addressProps.family || addressProps.internal) {
		var addr = addressProps.address;
		if ('IPv4' !== addressProps.family || addressProps.internal || !localIpExpr.test(addr)) {
			return;
		}

		ipList.push(addressProps.address);
		ipList.push(addr);
	}

	function getIp() {
@@ -18,12 +19,11 @@ module.exports = function(args) {

		for (var interfaceName in interfaces) {
			var interfaceItem = interfaces[interfaceName];

			interfaceItem.forEach(pushValidAddress.bind(null, ipList));
		}

		var firstIp = ipList && ipList[0];
		console.log('Found IP addresses:', ipList, ', using:', firstIp);
		console.log('Found local IP addresses:', ipList, ', using:', firstIp);

		return firstIp;
	}