UNPKG

private-ip

Version:
188 lines (181 loc) 3.84 kB
import test from 'ava' import is_ip_private from './index.js' const pub_ips = [ '44.37.112.180', '46.192.247.73', '71.12.102.112', '101.0.26.90', '111.211.73.40', '156.238.194.84', '164.101.185.82', '223.231.138.242', '226.84.185.150', '227.202.96.196', '::1fff:0.0.0.0', '::1fff:10.0.0.0', '::1fff:0:0.0.0.0', '::1fff:0:10.0.0.0', '2001:2:ffff:ffff:ffff:ffff:ffff:ffff', '64:ff9a::0.0.0.0', '64:ff9a::255.255.255.255', '99::', '99::ffff:ffff:ffff:ffff', '101::', '101::ffff:ffff:ffff:ffff', '2000::', '2000::ffff:ffff:ffff:ffff:ffff:ffff', '2001:10::', '2001:1f:ffff:ffff:ffff:ffff:ffff:ffff', '2001:db7::', '2001:db7:ffff:ffff:ffff:ffff:ffff:ffff', '2001:db9::', 'fb00::', 'fbff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'fec0::' ] const priv_ips = [ '0.0.0.0', '0000.0000.0000.0000', '0000.0000', '0.0.0.1', '0.0.0.7', '0.0.0.255', '0.0.255.255', '0.1.255.255', '0.15.255.255', '0.63.255.255', '0.255.255.254', '0.255.255.255', '10.0.0.0', '10.0.0.1', '10.0.0.01', '10.0.0.001', '10.255.255.254', '10.255.255.255', '100.64.0.0', '100.64.0.1', '100.127.255.254', '100.127.255.255', '127.0.0.0', '127.0.0.1', '127.0.0.01', '127.1', '127.0.1', '127.000.000.1', '127.255.255.254', '127.255.255.255', '169.254.0.0', '169.254.0.1', '169.254.255.254', '169.254.255.255', '172.16.0.0', '172.16.0.1', '172.16.0.001', '172.31.255.254', '172.31.255.255', '192.0.0.0', '192.0.0.1', '192.0.0.6', '192.0.0.7', '192.0.0.8', '192.0.0.9', '192.0.0.10', '192.0.0.11', '192.0.0.170', '192.0.0.171', '192.0.0.254', '192.0.0.255', '192.0.2.0', '192.0.2.1', '192.0.2.254', '192.0.2.255', '192.31.196.0', '192.31.196.1', '192.31.196.254', '192.31.196.255', '192.52.193.0', '192.52.193.1', '192.52.193.254', '192.52.193.255', '192.88.99.0', '192.88.99.1', '192.88.99.254', '192.88.99.255', '192.168.0.0', '192.168.0.1', '192.168.255.254', '192.168.255.255', '192.175.48.0', '192.175.48.1', '192.175.48.254', '192.175.48.255', '198.18.0.0', '198.18.0.1', '198.19.255.254', '198.19.255.255', '198.51.100.0', '198.51.100.1', '198.51.100.254', '198.51.100.255', '203.0.113.0', '203.0.113.1', '203.0.113.254', '203.0.113.255', '240.0.0.0', '240.0.0.1', '255.0.0.0', '255.192.0.0', '255.240.0.0', '255.254.0.0', '255.255.0.0', '255.255.255.0', '255.255.255.248', '255.255.255.254', '255.255.255.255', '::', '::1', '::ffff:0.0.0.0', '::ffff:255.255.255.255', '64:ff9b::0.0.0.0', '64:ff9b::16.10.11.1', '64:ff9b::255.255.255.255', '100::', '100::0:0:0:0', '100::1:eabc:0:2', '100::ffff:ffff:ffff:ffff', '2001::', '2001::a:b:c', '2001::ffff:ffff:ffff:ffff:ffff:ffff', '2001:20::', '2001:20::a:b:c', '2001:2f::a:b:c', '2001:2f:ffff:ffff:ffff:ffff:ffff:ffff', '2001:db8::', '2001:db8::1', '2001:db8:abc::1', '2001:db8:ffff:ffff:ffff:ffff:ffff:ffff', '2002::', '2002::1', '2002::abc:1', '2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'fe80::', 'fe80::1', 'fe80::abc:1', 'febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'fc00::', 'fc00::1', 'fc00::abc:1', 'fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 'ff00::', 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', '2130706433', '0x7f000001', ] const invalid_ips = [ '100::ffff::', '::ffff:0.0.255.255.255', '::ffff:0.255.255.255.255', ] pub_ips.forEach(ip_addr => test(`IP ${ip_addr.toString()} should be public`, t => t.false(is_ip_private(ip_addr)))) priv_ips.forEach(ip_addr => test(`IP ${ip_addr.toString()} should be private`, t => t.true(is_ip_private(ip_addr)))) invalid_ips.forEach(ip_addr => test(`IP ${ip_addr.toString()} should be undefined`, t => t.is(is_ip_private(ip_addr), undefined)))