From 7b367a93ce126d4bf5a56e10ee44613c59ffbe84 Mon Sep 17 00:00:00 2001 From: Josh Erickson Date: Mon, 6 Aug 2012 15:18:31 -0500 Subject: [PATCH] net: add support for IPv6 addresses ending in :: Modified net.isIP Ipv6 regex to allow for addresses ending in "::". Added tests for new IPv6 matching reqex. --- lib/net.js | 2 +- test/simple/test-net-isip.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/net.js b/lib/net.js index d6e3d5adae1..47f0403cfb7 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1138,7 +1138,7 @@ exports.isIP = function(input) { } } return 4; - } else if (/^::|^::1|^([a-fA-F0-9]{1,4}::?){1,7}([a-fA-F0-9]{1,4})$/.test( + } else if (/^::|^::1|^([a-fA-F0-9]{1,4}::?){1,7}([a-fA-F0-9]{0,4})$/.test( input)) { return 6; } else { diff --git a/test/simple/test-net-isip.js b/test/simple/test-net-isip.js index 4f60f502135..353cad6747f 100644 --- a/test/simple/test-net-isip.js +++ b/test/simple/test-net-isip.js @@ -31,6 +31,10 @@ assert.equal(net.isIP('0000:0000:0000:0000:0000:0000:0000:0000::0000'), 0); assert.equal(net.isIP('1050:0:0:0:5:600:300c:326b'), 6); assert.equal(net.isIP('2001:252:0:1::2008:6'), 6); assert.equal(net.isIP('2001:dead:beef:1::2008:6'), 6); +assert.equal(net.isIP('2001::'), 6); +assert.equal(net.isIP('2001:dead::'), 6); +assert.equal(net.isIP('2001:dead:beef::'), 6); +assert.equal(net.isIP('2001:dead:beef:1::'), 6); assert.equal(net.isIP('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'), 6); assert.equal(net.isIP('::1'), 6); assert.equal(net.isIP('::'), 6);