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.
This commit is contained in:
Josh Erickson 2012-08-06 15:18:31 -05:00 committed by Ben Noordhuis
parent 168a555780
commit 7b367a93ce
2 changed files with 5 additions and 1 deletions

View File

@ -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 {

View File

@ -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);