From c0e328b68998c28a335bdaa9f2aa1d8599c63954 Mon Sep 17 00:00:00 2001 From: Joe Haddad <timer150@gmail.com> Date: Sun, 21 May 2017 15:44:28 -0400 Subject: [PATCH] Ensure address is private (#2297) * Ensure address is private Resolves #2296 * adjust rule * Update WebpackDevServerUtils.js --- packages/react-dev-utils/WebpackDevServerUtils.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/react-dev-utils/WebpackDevServerUtils.js b/packages/react-dev-utils/WebpackDevServerUtils.js index 4fcd719087b..02ce10f3e9b 100644 --- a/packages/react-dev-utils/WebpackDevServerUtils.js +++ b/packages/react-dev-utils/WebpackDevServerUtils.js @@ -52,9 +52,22 @@ function prepareUrls(protocol, host, port) { if (isUnspecifiedHost) { prettyHost = 'localhost'; try { + // This can only return an IPv4 address lanUrlForConfig = address.ip(); if (lanUrlForConfig) { - lanUrlForTerminal = prettyPrintUrl(lanUrlForConfig); + // Check if the address is a private ip + // https://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces + if ( + /^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test( + lanUrlForConfig + ) + ) { + // Address is private, format it for later use + lanUrlForTerminal = prettyPrintUrl(lanUrlForConfig); + } else { + // Address is not private, so we will discard it + lanUrlForConfig = undefined; + } } } catch (_e) { // ignored