diff --git a/lib/net_uv.js b/lib/net_uv.js index e9db1b2cba..37888eda28 100644 --- a/lib/net_uv.js +++ b/lib/net_uv.js @@ -540,3 +540,35 @@ function onconnection(clientHandle) { Server.prototype.close = function() { this._handle.close(); }; + + +// TODO: isIP should be moved to the DNS code. Putting it here now because +// this is what the legacy system did. +exports.isIP = function(input) { + if (!input) { + return 4; + } else if (/^(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)\.(\d?\d?\d)$/.test(input)) { + var parts = input.split('.'); + for (var i = 0; i < parts.length; i++) { + var part = parseInt(parts[i]); + if (part < 0 || 255 < part) { + return 0; + } + } + return 4; + } else if (/^(::)?([a-fA-F0-9]+(::?)?)*$/.test(input)) { + return 6; + } else { + return 0; + } +} + + +exports.isIPv4 = function(input) { + return TCP.isIP(input) === 4; +}; + + +exports.isIPv6 = function(input) { + return TCP.isIP(input) === 6; +};