Tagged Fiddles
- 6RevisionsForks
IPv4 CIDR match
/\b(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4]|0[0-9])?[0-9])(?:\.(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])){0,3})\/(?:[1-9]|[12][0-9]|3[0-2]))\b/gExcerpt from RFC3330 (IANA, September 2002) Summary Table Address Block Present Use Reference ---------------------------------------------------------------------- 0.0.0.0/8 "This" Network [RFC1700, page 4] 10.0.0.0/8 Private-Use Networks [RFC1918] 14.0.0.0/8 Public-Data Networks [RFC1700, page 181] 24.0.0.0/8 Cable Television Networks -- 39.0.0.0/8 Reserved but subject to allocation [RFC1797] 127.0.0.0/8 Loopback [RFC1700, page 5] 128.0.0.0/16 Reserved but subject to allocation -- 169.254.0.0/16 Link Local -- 172.16.0.0/12 Private-Use Networks [RFC1918] 191.255.0.0/16 Reserved but subject to allocation -- 192.0.0.0/24 Reserved but subject to allocation -- 192.0.2.0/24 Test-Net 192.88.99.0/24 6to4 Relay Anycast [RFC3068] 192.168.0.0/16 Private-Use Networks [RFC1918] 198.18.0.0/15 Network Interconnect Device Benchmark Testing [RFC2544] 223.255.255.0/24 Reserved but subject to allocation -- 224.0.0.0/4 Multicast [RFC3171] 240.0.0.0/4 Reserved for Future Use [RFC1700, page 4] List of reserved /8 blocks[edit] Block Organization IANA date RIR date Notes 0.0.0.0/8 IANA - Local Identification 1981-09 Originally IANA - Reserved 1981-09. 0.0.0.0/8 reserved for self-identification (RFC 6890). 10.0.0.0/8 IANA - Private Use 1995-06 Reserved for Private-Use Networks (RFC 1918). Formerly ARPANET.[1] 127.0.0.0/8 IANA - Loopback 1981-09 127.0.0.0/8 is reserved for Loopback (RFC 6890). 224.0.0.0/8–239.0.0.0/8 Multicast 1981-09 1991-05-22 Multicast (formerly "Class D") (RFC 5771) registered in [1]. 224.0.0.0/4. 240.0.0.0/8–255.0.0.0/8 Future Use 1981-09 Reserved for future use (formerly "Class E") (RFC 1112). 255.255.255.255 is reserved for "limited broadcast" destination address (RFC 919) and (RFC 922). 240.0.0.0/4. 10.10.1.97/23 IP Address 10.10.1.97/23 belongs to the 10.10.0.0/23 Network. The network Address is 10.10.0.0 and the Broadcast Address is 10.10.1.255. 192.168.0.3/25 IP Address 192.168.0.3/25 belongs to the 192.168.0.0/25 Network. The network Address is 192.168.0.0 and the Broadcast Address is 192.168.0.127. 172.16.5.34/26 IP Address 172.16.5.34/26 belongs to the 172.16.5.0/26 Network. The network Address is 172.16.5.0 and the Broadcast Address is 172.16.5.63. 192.168.11.17/28 IP Address 192.168.11.17/28 belongs to the 192.168.11.16/28 Network. The network Address is 192.168.11.16 and the Broadcast Address is 192.168.11.31. Class A 0--- : If the first bit of an IPv4 address is "0", this means that the address is part of class A. This means that any address from 0.0.0.0 to 127.255.255.255 is in class A. Class B 10-- : Class B includes any address from 128.0.0.0 to 191.255.255.255. This represents the addresses that have a "1" for their first bit, but don't have a "1" for their second bit. Class C 110- : Class C is defined as the addresses ranging from 192.0.0.0 to 223.255.255.255. This represents all of the addresses with a "1" for their first two bits, but without a "1" for their third bit. Class D 1110 : This class includes addresses that have "111" as their first three bits, but a "0" for the next bit. This address range includes addresses from 224.0.0.0 to 239.255.255.255. Class E 1111 : This class defines addresses between 240.0.0.0 and 255.255.255.255. Any address that begins with four "1" bits is included in this class. Prefix Designation Date WHOIS RDAP Status [1] Note 000/8 IANA - Local Identification 1981-09 RESERVED [2] 001/8 APNIC 2010-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 002/8 RIPE NCC 2009-09 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 003/8 General Electric Company 1994-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 004/8 Level 3 Communications, Inc. 1992-12 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 005/8 RIPE NCC 2010-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 006/8 Army Information Systems Center 1994-02 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 007/8 Administered by ARIN 1995-04 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 008/8 Level 3 Communications, Inc. 1992-12 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 009/8 IBM 1992-08 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 010/8 IANA - Private Use 1995-06 RESERVED [3] 011/8 DoD Intel Information Systems 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 012/8 AT&T Bell Laboratories 1995-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 013/8 Administered by ARIN 1991-09 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 014/8 APNIC 2010-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED [4] 015/8 Hewlett-Packard Company 1994-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 016/8 Digital Equipment Corporation 1994-11 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 017/8 Apple Computer Inc. 1992-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 018/8 MIT 1994-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 019/8 Ford Motor Company 1995-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 020/8 Computer Sciences Corporation 1994-10 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 021/8 DDN-RVN 1991-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 022/8 Defense Information Systems Agency 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 023/8 ARIN 2010-11 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 024/8 ARIN 2001-05 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 025/8 UK Ministry of Defence 1995-01 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 026/8 Defense Information Systems Agency 1995-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 027/8 APNIC 2010-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 028/8 DSI-North 1992-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 029/8 Defense Information Systems Agency 1991-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 030/8 Defense Information Systems Agency 1991-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 031/8 RIPE NCC 2010-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 032/8 Administered by ARIN 1994-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 033/8 DLA Systems Automation Center 1991-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 034/8 Halliburton Company 1993-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 035/8 Administered by ARIN 1994-04 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 036/8 APNIC 2010-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 037/8 RIPE NCC 2010-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 038/8 PSINet, Inc. 1994-09 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 039/8 APNIC 2011-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 040/8 Administered by ARIN 1994-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 041/8 AFRINIC 2005-04 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 042/8 APNIC 2010-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 043/8 Administered by APNIC 1991-01 whois.apnic.net https://rdap.apnic.net/ LEGACY 044/8 Amateur Radio Digital Communications 1992-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 045/8 Administered by ARIN 1995-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 046/8 RIPE NCC 2009-09 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 047/8 Administered by ARIN 1991-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 048/8 Prudential Securities Inc. 1995-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 049/8 APNIC 2010-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 050/8 ARIN 2010-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 051/8 Administered by RIPE NCC 1994-08 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 052/8 Administered by ARIN 1991-12 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 053/8 Daimler AG 1993-10 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 054/8 Administered by ARIN 1992-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 055/8 DoD Network Information Center 1995-04 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 056/8 US Postal Service 1994-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 057/8 Societe Internationale de Telecommunications Aeronautiques 1995-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY S.C.R.L. 058/8 APNIC 2004-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 059/8 APNIC 2004-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 060/8 APNIC 2003-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 061/8 APNIC 1997-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 062/8 RIPE NCC 1997-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 063/8 ARIN 1997-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 064/8 ARIN 1999-07 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 065/8 ARIN 2000-07 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 066/8 ARIN 2000-07 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 067/8 ARIN 2001-05 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 068/8 ARIN 2001-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 069/8 ARIN 2002-08 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 070/8 ARIN 2004-01 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 071/8 ARIN 2004-08 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 072/8 ARIN 2004-08 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 073/8 ARIN 2005-03 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 074/8 ARIN 2005-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 075/8 ARIN 2005-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 076/8 ARIN 2005-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 077/8 RIPE NCC 2006-08 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 078/8 RIPE NCC 2006-08 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 079/8 RIPE NCC 2006-08 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 080/8 RIPE NCC 2001-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 081/8 RIPE NCC 2001-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 082/8 RIPE NCC 2002-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 083/8 RIPE NCC 2003-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 084/8 RIPE NCC 2003-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 085/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 086/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 087/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 088/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 089/8 RIPE NCC 2005-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 090/8 RIPE NCC 2005-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 091/8 RIPE NCC 2005-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 092/8 RIPE NCC 2007-03 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 093/8 RIPE NCC 2007-03 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 094/8 RIPE NCC 2007-07 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 095/8 RIPE NCC 2007-07 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 096/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 097/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 098/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 099/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 100/8 ARIN 2010-11 whois.arin.net https://rdap.arin.net/registry ALLOCATED [5] http://rdap.arin.net/registry 101/8 APNIC 2010-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 102/8 AFRINIC 2011-02 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 103/8 APNIC 2011-02 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 104/8 ARIN 2011-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 105/8 AFRINIC 2010-11 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 106/8 APNIC 2011-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 107/8 ARIN 2010-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 108/8 ARIN 2008-12 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 109/8 RIPE NCC 2009-01 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 110/8 APNIC 2008-11 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 111/8 APNIC 2008-11 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 112/8 APNIC 2008-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 113/8 APNIC 2008-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 114/8 APNIC 2007-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 115/8 APNIC 2007-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 116/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 117/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 118/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 119/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 120/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 121/8 APNIC 2006-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 122/8 APNIC 2006-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 123/8 APNIC 2006-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 124/8 APNIC 2005-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 125/8 APNIC 2005-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 126/8 APNIC 2005-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 127/8 IANA - Loopback 1981-09 RESERVED [6] 128/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 129/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 130/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 131/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 132/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 133/8 Administered by APNIC 1997-03 whois.apnic.net https://rdap.apnic.net/ LEGACY 134/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 135/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 136/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 137/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 138/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 139/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 140/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 141/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 142/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 143/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 144/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 145/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 146/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 147/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 148/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 149/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 150/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 151/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 152/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 153/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 154/8 Administered by AFRINIC 1993-05 whois.afrinic.net https://rdap.afrinic.net/rdap/ LEGACY http://rdap.afrinic.net/rdap/ 155/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 156/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 157/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 158/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 159/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 160/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 161/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 162/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 163/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 164/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 165/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 166/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 167/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 168/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 169/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [7] http://rdap.arin.net/registry 170/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 171/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 172/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [8] http://rdap.arin.net/registry 173/8 ARIN 2008-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 174/8 ARIN 2008-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 175/8 APNIC 2009-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 176/8 RIPE NCC 2010-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 177/8 LACNIC 2010-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 178/8 RIPE NCC 2009-01 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 179/8 LACNIC 2011-02 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 180/8 APNIC 2009-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 181/8 LACNIC 2010-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 182/8 APNIC 2009-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 183/8 APNIC 2009-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 184/8 ARIN 2008-12 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 185/8 RIPE NCC 2011-02 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 186/8 LACNIC 2007-09 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 187/8 LACNIC 2007-09 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 188/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 189/8 LACNIC 1995-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 190/8 LACNIC 1995-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 191/8 Administered by LACNIC 1993-05 whois.lacnic.net https://rdap.lacnic.net/rdap/ LEGACY 192/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [9][10] http://rdap.arin.net/registry 193/8 RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 194/8 RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 195/8 RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 196/8 Administered by AFRINIC 1993-05 whois.afrinic.net https://rdap.afrinic.net/rdap/ LEGACY http://rdap.afrinic.net/rdap/ 197/8 AFRINIC 2008-10 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 198/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [11] http://rdap.arin.net/registry 199/8 ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 200/8 LACNIC 2002-11 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 201/8 LACNIC 2003-04 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 202/8 APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 203/8 APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED [12] 204/8 ARIN 1994-03 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 205/8 ARIN 1994-03 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 206/8 ARIN 1995-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 207/8 ARIN 1995-11 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 208/8 ARIN 1996-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 209/8 ARIN 1996-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 210/8 APNIC 1996-06 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 211/8 APNIC 1996-06 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 212/8 RIPE NCC 1997-10 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 213/8 RIPE NCC 1993-10 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 214/8 US-DOD 1998-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 215/8 US-DOD 1998-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 216/8 ARIN 1998-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 217/8 RIPE NCC 2000-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 218/8 APNIC 2000-12 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 219/8 APNIC 2001-09 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 220/8 APNIC 2001-12 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 221/8 APNIC 2002-07 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 222/8 APNIC 2003-02 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 223/8 APNIC 2010-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 224/8 Multicast 1981-09 RESERVED [13] 225/8 Multicast 1981-09 RESERVED [13] 226/8 Multicast 1981-09 RESERVED [13] 227/8 Multicast 1981-09 RESERVED [13] 228/8 Multicast 1981-09 RESERVED [13] 229/8 Multicast 1981-09 RESERVED [13] 230/8 Multicast 1981-09 RESERVED [13] 231/8 Multicast 1981-09 RESERVED [13] 232/8 Multicast 1981-09 RESERVED [13] 233/8 Multicast 1981-09 RESERVED [13] 234/8 Multicast 1981-09 RESERVED [13][14] 235/8 Multicast 1981-09 RESERVED [13] 236/8 Multicast 1981-09 RESERVED [13] 237/8 Multicast 1981-09 RESERVED [13] 238/8 Multicast 1981-09 RESERVED [13] 239/8 Multicast 1981-09 RESERVED [13][15] 240/8 Future use 1981-09 RESERVED [16] 241/8 Future use 1981-09 RESERVED [16] 242/8 Future use 1981-09 RESERVED [16] 243/8 Future use 1981-09 RESERVED [16] 244/8 Future use 1981-09 RESERVED [16] 245/8 Future use 1981-09 RESERVED [16] 246/8 Future use 1981-09 RESERVED [16] 247/8 Future use 1981-09 RESERVED [16] 248/8 Future use 1981-09 RESERVED [16] 249/8 Future use 1981-09 RESERVED [16] 250/8 Future use 1981-09 RESERVED [16] 251/8 Future use 1981-09 RESERVED [16] 252/8 Future use 1981-09 RESERVED [16] 253/8 Future use 1981-09 RESERVED [16] 254/8 Future use 1981-09 RESERVED [16] 255/8 Future use 1981-09 RESERVED [16][17] * Full form of IPv6: e80:0000:0000:0000:0204:61ff:fe9d:f156 * Drop leading zeroes: fe80:0:0:0:204:61ff:fe9d:f156 * Collapse multiple zeroes to :: in the IPv6 address: fe80::204:61ff:fe9d:f156 * IPv4 dotted quad at the end: fe80:0000:0000:0000:0204:61ff:254.157.241.86 * Drop leading zeroes, IPv4 dotted quad at the end: fe80:0:0:0:0204:61ff:254.157.241.86 * Dotted quad at the end, multiple zeroes collapsed: fe80::204:61ff:254.157.241.86 * In addition, the regular expression matches these IPv6 forms: * Localhost: ::1 * Link-local prefix: fe80:: * Global unicast prefix: 2001:: * Invalid IPv6 addresses: * 1111:2222:3333:4444::5555: * 1111:2222:3333::5555: * 1111:2222::5555: * 1111::5555: * ::5555: foreach my $should ( '::', '::1', 'fe02::1', '::ffff:192.0.2.1', '2001:DB8::42', '2001:DB8:1234:5678:90ab:cdef:0123:4567', '2001:DB8:1234:5678:90ab:cdef:0123::', '2001:DB8:1234:5678:90ab:cdef::0123', '2001:DB8:1234:5678:90ab:cdef:192.0.2.1', '2001:DB8:1234:5678:90ab:cdef:192.0.2.1', ) { like($should, $anchored, "should be IPv6: [$should]"); } foreach my $nope ( '127.0.0.1', '', ' ', '192.0.2.1', '2001', '2001:DB8', '2001:DB8:', '2001:DB8::42::1', '2001:DB8:1234:5678:90ab:cdef:g123:4567', '2001:DB8:1234:5678:90ab:cdef:0123:4567:89', '2001:DB8:1234:5678:90ab:cdef:0123', ) { unlike($nope, $anchored, "should not be IPv6: [$nope]"); ipv6test(!1,"");# empty string ipv6test(1,"::1");# loopback, compressed, non-routable ipv6test(1,"::");# unspecified, compressed, non-routable ipv6test(1,"0:0:0:0:0:0:0:1");# loopback, full ipv6test(1,"0:0:0:0:0:0:0:0");# unspecified, full ipv6test(1,"2001:DB8:0:0:8:800:200C:417A");# unicast, full ipv6test(1,"FF01:0:0:0:0:0:0:101");# multicast, full ipv6test(1,"2001:DB8::8:800:200C:417A");# unicast, compressed ipv6test(1,"FF01::101");# multicast, compressed ipv6test(!1,"2001:DB8:0:0:8:800:200C:417A:221");# unicast, full ipv6test(!1,"FF01::101::2");# multicast, compressed ipv6test(1,"fe80::217:f2ff:fe07:ed62"); ipv6test(1,"2001:0000:1234:0000:0000:C1C0:ABCD:0876"); ipv6test(1,"3ffe:0b00:0000:0000:0001:0000:0000:000a"); ipv6test(1,"FF02:0000:0000:0000:0000:0000:0000:0001"); ipv6test(1,"0000:0000:0000:0000:0000:0000:0000:0001"); ipv6test(1,"0000:0000:0000:0000:0000:0000:0000:0000"); ipv6test(!1,"02001:0000:1234:0000:0000:C1C0:ABCD:0876"); # extra 0 not allowed! ipv6test(!1,"2001:0000:1234:0000:00001:C1C0:ABCD:0876"); # extra 0 not allowed! #ipv6test(1," 2001:0000:1234:0000:0000:C1C0:ABCD:0876"); # leading space #ipv6test(1,"2001:0000:1234:0000:0000:C1C0:ABCD:0876"); # trailing space #ipv6test(1," 2001:0000:1234:0000:0000:C1C0:ABCD:0876 "); # leading and trailing space ipv6test(!1,"2001:0000:1234:0000:0000:C1C0:ABCD:0876 0"); # junk after valid address ipv6test(!1,"2001:0000:1234: 0000:0000:C1C0:ABCD:0876"); # internal space ipv6test(!1,"3ffe:0b00:0000:0001:0000:0000:000a"); # seven segments ipv6test(!1,"FF02:0000:0000:0000:0000:0000:0000:0000:0001"); # nine segments ipv6test(!1,"3ffe:b00::1::a"); # double "::" ipv6test(!1,"::1111:2222:3333:4444:5555:6666::"); # double "::" ipv6test(1,"2::10"); ipv6test(1,"ff02::1"); ipv6test(1,"fe80::"); ipv6test(1,"2002::"); ipv6test(1,"2001:db8::"); ipv6test(1,"2001:0db8:1234::"); ipv6test(1,"::ffff:0:0"); ipv6test(1,"::1"); ipv6test(1,"1:2:3:4:5:6:7:8"); ipv6test(1,"1:2:3:4:5:6::8"); ipv6test(1,"1:2:3:4:5::8"); ipv6test(1,"1:2:3:4::8"); ipv6test(1,"1:2:3::8"); ipv6test(1,"1:2::8"); ipv6test(1,"1::8"); ipv6test(1,"1::2:3:4:5:6:7"); ipv6test(1,"1::2:3:4:5:6"); ipv6test(1,"1::2:3:4:5"); ipv6test(1,"1::2:3:4"); ipv6test(1,"1::2:3"); ipv6test(1,"1::8"); ipv6test(1,"::2:3:4:5:6:7:8"); ipv6test(1,"::2:3:4:5:6:7"); ipv6test(1,"::2:3:4:5:6"); ipv6test(1,"::2:3:4:5"); ipv6test(1,"::2:3:4"); ipv6test(1,"::2:3"); ipv6test(1,"::8"); ipv6test(1,"1:2:3:4:5:6::"); ipv6test(1,"1:2:3:4:5::"); ipv6test(1,"1:2:3:4::"); ipv6test(1,"1:2:3::"); ipv6test(1,"1:2::"); ipv6test(1,"1::"); ipv6test(1,"1:2:3:4:5::7:8"); ipv6test(!1,"1:2:3::4:5::7:8"); # Double "::" ipv6test(!1,"12345::6:7:8"); ipv6test(1,"1:2:3:4::7:8"); ipv6test(1,"1:2:3::7:8"); ipv6test(1,"1:2::7:8"); ipv6test(1,"1::7:8"); # IPv4 addresses as dotted-quads ipv6test(1,"1:2:3:4:5:6:1.2.3.4"); ipv6test(1,"1:2:3:4:5::1.2.3.4"); ipv6test(1,"1:2:3:4::1.2.3.4"); ipv6test(1,"1:2:3::1.2.3.4"); ipv6test(1,"1:2::1.2.3.4"); ipv6test(1,"1::1.2.3.4"); ipv6test(1,"1:2:3:4::5:1.2.3.4"); ipv6test(1,"1:2:3::5:1.2.3.4"); ipv6test(1,"1:2::5:1.2.3.4"); ipv6test(1,"1::5:1.2.3.4"); ipv6test(1,"1::5:11.22.33.44"); ipv6test(!1,"1::5:400.2.3.4"); ipv6test(!1,"1::5:260.2.3.4"); ipv6test(!1,"1::5:256.2.3.4"); ipv6test(!1,"1::5:1.256.3.4"); ipv6test(!1,"1::5:1.2.256.4"); ipv6test(!1,"1::5:1.2.3.256"); ipv6test(!1,"1::5:300.2.3.4"); ipv6test(!1,"1::5:1.300.3.4"); ipv6test(!1,"1::5:1.2.300.4"); ipv6test(!1,"1::5:1.2.3.300"); ipv6test(!1,"1::5:900.2.3.4"); ipv6test(!1,"1::5:1.900.3.4"); ipv6test(!1,"1::5:1.2.900.4"); ipv6test(!1,"1::5:1.2.3.900"); ipv6test(!1,"1::5:300.300.300.300"); ipv6test(!1,"1::5:3000.30.30.30"); ipv6test(!1,"1::400.2.3.4"); ipv6test(!1,"1::260.2.3.4"); ipv6test(!1,"1::256.2.3.4"); ipv6test(!1,"1::1.256.3.4"); ipv6test(!1,"1::1.2.256.4"); ipv6test(!1,"1::1.2.3.256"); ipv6test(!1,"1::300.2.3.4"); ipv6test(!1,"1::1.300.3.4"); ipv6test(!1,"1::1.2.300.4"); ipv6test(!1,"1::1.2.3.300"); ipv6test(!1,"1::900.2.3.4"); ipv6test(!1,"1::1.900.3.4"); ipv6test(!1,"1::1.2.900.4"); ipv6test(!1,"1::1.2.3.900"); ipv6test(!1,"1::300.300.300.300"); ipv6test(!1,"1::3000.30.30.30"); ipv6test(!1,"::400.2.3.4"); ipv6test(!1,"::260.2.3.4"); ipv6test(!1,"::256.2.3.4"); ipv6test(!1,"::1.256.3.4"); ipv6test(!1,"::1.2.256.4"); ipv6test(!1,"::1.2.3.256"); ipv6test(!1,"::300.2.3.4"); ipv6test(!1,"::1.300.3.4"); ipv6test(!1,"::1.2.300.4"); ipv6test(!1,"::1.2.3.300"); ipv6test(!1,"::900.2.3.4"); ipv6test(!1,"::1.900.3.4"); ipv6test(!1,"::1.2.900.4"); ipv6test(!1,"::1.2.3.900"); ipv6test(!1,"::300.300.300.300"); ipv6test(!1,"::3000.30.30.30"); ipv6test(1,"fe80::217:f2ff:254.7.237.98"); ipv6test(1,"::ffff:192.168.1.26"); ipv6test(!1,"2001:1:1:1:1:1:255Z255X255Y255"); # garbage instead of "." in IPv4 ipv6test(!1,"::ffff:192x168.1.26"); # ditto ipv6test(1,"::ffff:192.168.1.1"); ipv6test(1,"0:0:0:0:0:0:13.1.68.3");# IPv4-compatible IPv6 address, full, deprecated ipv6test(1,"0:0:0:0:0:FFFF:129.144.52.38");# IPv4-mapped IPv6 address, full ipv6test(1,"::13.1.68.3");# IPv4-compatible IPv6 address, compressed, deprecated ipv6test(1,"::FFFF:129.144.52.38");# IPv4-mapped IPv6 address, compressed ipv6test(1,"fe80:0:0:0:204:61ff:254.157.241.86"); ipv6test(1,"fe80::204:61ff:254.157.241.86"); ipv6test(1,"::ffff:12.34.56.78"); ipv6test(!1,"::ffff:2.3.4"); ipv6test(!1,"::ffff:257.1.2.3"); ipv6test(!1,"1.2.3.4"); ipv6test(!1,"1.2.3.4:1111:2222:3333:4444::5555"); # Aeron ipv6test(!1,"1.2.3.4:1111:2222:3333::5555"); ipv6test(!1,"1.2.3.4:1111:2222::5555"); ipv6test(!1,"1.2.3.4:1111::5555"); ipv6test(!1,"1.2.3.4::5555"); ipv6test(!1,"1.2.3.4::"); # Testing IPv4 addresses represented as dotted-quads # Leading zero's in IPv4 addresses not allowed: some systems treat the leading "0" in ".086" as the start of an octal number # Update: The BNF in RFC-3986 explicitly defines the dec-octet (for IPv4 addresses) not to have a leading zero ipv6test(!1,"fe80:0000:0000:0000:0204:61ff:254.157.241.086"); ipv6test(1,"::ffff:192.0.2.128"); # but this is OK, since there's a single digit ipv6test(!1,"XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:00.00.00.00"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:000.000.000.000"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:256.256.256.256"); # Not testing address with subnet mask # ipv6test(1,"2001:0DB8:0000:CD30:0000:0000:0000:0000/60");# full, with prefix # ipv6test(1,"2001:0DB8::CD30:0:0:0:0/60");# compressed, with prefix # ipv6test(1,"2001:0DB8:0:CD30::/60");# compressed, with prefix #2 # ipv6test(1,"::/128");# compressed, unspecified address type, non-routable # ipv6test(1,"::1/128");# compressed, loopback address type, non-routable # ipv6test(1,"FF00::/8");# compressed, multicast address type # ipv6test(1,"FE80::/10");# compressed, link-local unicast, non-routable # ipv6test(1,"FEC0::/10");# compressed, site-local unicast, deprecated # ipv6test(!1,"124.15.6.89/60");# standard IPv4, prefix not allowed ipv6test(1,"fe80:0000:0000:0000:0204:61ff:fe9d:f156"); ipv6test(1,"fe80:0:0:0:204:61ff:fe9d:f156"); ipv6test(1,"fe80::204:61ff:fe9d:f156"); ipv6test(1,"::1"); ipv6test(1,"fe80::"); ipv6test(1,"fe80::1"); ipv6test(!1,":"); ipv6test(1,"::ffff:c000:280"); # Aeron supplied these test cases ipv6test(!1,"1111:2222:3333:4444::5555:"); ipv6test(!1,"1111:2222:3333::5555:"); ipv6test(!1,"1111:2222::5555:"); ipv6test(!1,"1111::5555:"); ipv6test(!1,"::5555:"); ipv6test(!1,":::"); ipv6test(!1,"1111:"); ipv6test(!1,":"); ipv6test(!1,":1111:2222:3333:4444::5555"); ipv6test(!1,":1111:2222:3333::5555"); ipv6test(!1,":1111:2222::5555"); ipv6test(!1,":1111::5555"); ipv6test(!1,":::5555"); ipv6test(!1,":::"); # Additional test cases # from http://rt.cpan.org/Public/Bug/Display.html?id=50693 ipv6test(1,"2001:0db8:85a3:0000:0000:8a2e:0370:7334"); ipv6test(1,"2001:db8:85a3:0:0:8a2e:370:7334"); ipv6test(1,"2001:db8:85a3::8a2e:370:7334"); ipv6test(1,"2001:0db8:0000:0000:0000:0000:1428:57ab"); ipv6test(1,"2001:0db8:0000:0000:0000::1428:57ab"); ipv6test(1,"2001:0db8:0:0:0:0:1428:57ab"); ipv6test(1,"2001:0db8:0:0::1428:57ab"); ipv6test(1,"2001:0db8::1428:57ab"); ipv6test(1,"2001:db8::1428:57ab"); ipv6test(1,"0000:0000:0000:0000:0000:0000:0000:0001"); ipv6test(1,"::1"); ipv6test(1,"::ffff:0c22:384e"); ipv6test(1,"2001:0db8:1234:0000:0000:0000:0000:0000"); ipv6test(1,"2001:0db8:1234:ffff:ffff:ffff:ffff:ffff"); ipv6test(1,"2001:db8:a::123"); ipv6test(1,"fe80::"); ipv6test(!1,"123"); ipv6test(!1,"ldkfj"); ipv6test(!1,"2001::FFD3::57ab"); ipv6test(!1,"2001:db8:85a3::8a2e:37023:7334"); ipv6test(!1,"2001:db8:85a3::8a2e:370k:7334"); ipv6test(!1,"1:2:3:4:5:6:7:8:9"); ipv6test(!1,"1::2::3"); ipv6test(!1,"1:::3:4:5"); ipv6test(!1,"1:2:3::4:5:6:7:8:9"); # New from Aeron ipv6test(1,"1111:2222:3333:4444:5555:6666:7777:8888"); ipv6test(1,"1111:2222:3333:4444:5555:6666:7777::"); ipv6test(1,"1111:2222:3333:4444:5555:6666::"); ipv6test(1,"1111:2222:3333:4444:5555::"); ipv6test(1,"1111:2222:3333:4444::"); ipv6test(1,"1111:2222:3333::"); ipv6test(1,"1111:2222::"); ipv6test(1,"1111::"); # ipv6test(1,"::"); #duplicate ipv6test(1,"1111:2222:3333:4444:5555:6666::8888"); ipv6test(1,"1111:2222:3333:4444:5555::8888"); ipv6test(1,"1111:2222:3333:4444::8888"); ipv6test(1,"1111:2222:3333::8888"); ipv6test(1,"1111:2222::8888"); ipv6test(1,"1111::8888"); ipv6test(1,"::8888"); ipv6test(1,"1111:2222:3333:4444:5555::7777:8888"); ipv6test(1,"1111:2222:3333:4444::7777:8888"); ipv6test(1,"1111:2222:3333::7777:8888"); ipv6test(1,"1111:2222::7777:8888"); ipv6test(1,"1111::7777:8888"); ipv6test(1,"::7777:8888"); ipv6test(1,"1111:2222:3333:4444::6666:7777:8888"); ipv6test(1,"1111:2222:3333::6666:7777:8888"); ipv6test(1,"1111:2222::6666:7777:8888"); ipv6test(1,"1111::6666:7777:8888"); ipv6test(1,"::6666:7777:8888"); ipv6test(1,"1111:2222:3333::5555:6666:7777:8888"); ipv6test(1,"1111:2222::5555:6666:7777:8888"); ipv6test(1,"1111::5555:6666:7777:8888"); ipv6test(1,"::5555:6666:7777:8888"); ipv6test(1,"1111:2222::4444:5555:6666:7777:8888"); ipv6test(1,"1111::4444:5555:6666:7777:8888"); ipv6test(1,"::4444:5555:6666:7777:8888"); ipv6test(1,"1111::3333:4444:5555:6666:7777:8888"); ipv6test(1,"::3333:4444:5555:6666:7777:8888"); ipv6test(1,"::2222:3333:4444:5555:6666:7777:8888"); ipv6test(1,"1111:2222:3333:4444:5555:6666:123.123.123.123"); ipv6test(1,"1111:2222:3333:4444:5555::123.123.123.123"); ipv6test(1,"1111:2222:3333:4444::123.123.123.123"); ipv6test(1,"1111:2222:3333::123.123.123.123"); ipv6test(1,"1111:2222::123.123.123.123"); ipv6test(1,"1111::123.123.123.123"); ipv6test(1,"::123.123.123.123"); ipv6test(1,"1111:2222:3333:4444::6666:123.123.123.123"); ipv6test(1,"1111:2222:3333::6666:123.123.123.123"); ipv6test(1,"1111:2222::6666:123.123.123.123"); ipv6test(1,"1111::6666:123.123.123.123"); ipv6test(1,"::6666:123.123.123.123"); ipv6test(1,"1111:2222:3333::5555:6666:123.123.123.123"); ipv6test(1,"1111:2222::5555:6666:123.123.123.123"); ipv6test(1,"1111::5555:6666:123.123.123.123"); ipv6test(1,"::5555:6666:123.123.123.123"); ipv6test(1,"1111:2222::4444:5555:6666:123.123.123.123"); ipv6test(1,"1111::4444:5555:6666:123.123.123.123"); ipv6test(1,"::4444:5555:6666:123.123.123.123"); ipv6test(1,"1111::3333:4444:5555:6666:123.123.123.123"); ipv6test(1,"::2222:3333:4444:5555:6666:123.123.123.123"); # Playing with combinations of "0" and "::" # NB: these are all sytactically correct, but are bad form # because "0" adjacent to "::" should be combined into "::" ipv6test(1,"::0:0:0:0:0:0:0"); ipv6test(1,"::0:0:0:0:0:0"); ipv6test(1,"::0:0:0:0:0"); ipv6test(1,"::0:0:0:0"); ipv6test(1,"::0:0:0"); ipv6test(1,"::0:0"); ipv6test(1,"::0"); ipv6test(1,"0:0:0:0:0:0:0::"); ipv6test(1,"0:0:0:0:0:0::"); ipv6test(1,"0:0:0:0:0::"); ipv6test(1,"0:0:0:0::"); ipv6test(1,"0:0:0::"); ipv6test(1,"0:0::"); ipv6test(1,"0::"); # New invalid from Aeron # Invalid data ipv6test(!1,"XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX"); # Too many components ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888:9999"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888::"); ipv6test(!1,"::2222:3333:4444:5555:6666:7777:8888:9999"); # Too few components ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777"); ipv6test(!1,"1111:2222:3333:4444:5555:6666"); ipv6test(!1,"1111:2222:3333:4444:5555"); ipv6test(!1,"1111:2222:3333:4444"); ipv6test(!1,"1111:2222:3333"); ipv6test(!1,"1111:2222"); ipv6test(!1,"1111"); # Missing : ipv6test(!1,"11112222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:22223333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:33334444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:44445555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:55556666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:66667777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:77778888"); # Missing : intended for :: ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888:"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:"); ipv6test(!1,"1111:2222:3333:4444:5555:"); ipv6test(!1,"1111:2222:3333:4444:"); ipv6test(!1,"1111:2222:3333:"); ipv6test(!1,"1111:2222:"); ipv6test(!1,"1111:"); ipv6test(!1,":"); ipv6test(!1,":8888"); ipv6test(!1,":7777:8888"); ipv6test(!1,":6666:7777:8888"); ipv6test(!1,":5555:6666:7777:8888"); ipv6test(!1,":4444:5555:6666:7777:8888"); ipv6test(!1,":3333:4444:5555:6666:7777:8888"); ipv6test(!1,":2222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,":1111:2222:3333:4444:5555:6666:7777:8888"); # ::: ipv6test(!1,":::2222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:::3333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:::4444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:::5555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:::6666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:::7777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:::8888"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:::"); # Double ::"); ipv6test(!1,"::2222::4444:5555:6666:7777:8888"); ipv6test(!1,"::2222:3333::5555:6666:7777:8888"); ipv6test(!1,"::2222:3333:4444::6666:7777:8888"); ipv6test(!1,"::2222:3333:4444:5555::7777:8888"); ipv6test(!1,"::2222:3333:4444:5555:7777::8888"); ipv6test(!1,"::2222:3333:4444:5555:7777:8888::"); ipv6test(!1,"1111::3333::5555:6666:7777:8888"); ipv6test(!1,"1111::3333:4444::6666:7777:8888"); ipv6test(!1,"1111::3333:4444:5555::7777:8888"); ipv6test(!1,"1111::3333:4444:5555:6666::8888"); ipv6test(!1,"1111::3333:4444:5555:6666:7777::"); ipv6test(!1,"1111:2222::4444::6666:7777:8888"); ipv6test(!1,"1111:2222::4444:5555::7777:8888"); ipv6test(!1,"1111:2222::4444:5555:6666::8888"); ipv6test(!1,"1111:2222::4444:5555:6666:7777::"); ipv6test(!1,"1111:2222:3333::5555::7777:8888"); ipv6test(!1,"1111:2222:3333::5555:6666::8888"); ipv6test(!1,"1111:2222:3333::5555:6666:7777::"); ipv6test(!1,"1111:2222:3333:4444::6666::8888"); ipv6test(!1,"1111:2222:3333:4444::6666:7777::"); ipv6test(!1,"1111:2222:3333:4444:5555::7777::"); # Too many components" ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666::1.2.3.4"); ipv6test(!1,"::2222:3333:4444:5555:6666:7777:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:1.2.3.4.5"); # Too few components ipv6test(!1,"1111:2222:3333:4444:5555:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:1.2.3.4"); ipv6test(!1,"1111:2222:3333:1.2.3.4"); ipv6test(!1,"1111:2222:1.2.3.4"); ipv6test(!1,"1111:1.2.3.4"); ipv6test(!1,"1.2.3.4"); # Missing : ipv6test(!1,"11112222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:22223333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:33334444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:44445555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:55556666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:66661.2.3.4"); # Missing . ipv6test(!1,"1111:2222:3333:4444:5555:6666:255255.255.255"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:255.255255.255"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:255.255.255255"); # Missing : intended for :: ipv6test(!1,":1.2.3.4"); ipv6test(!1,":6666:1.2.3.4"); ipv6test(!1,":5555:6666:1.2.3.4"); ipv6test(!1,":4444:5555:6666:1.2.3.4"); ipv6test(!1,":3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":2222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444:5555:6666:1.2.3.4"); # ::: ipv6test(!1,":::2222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:::3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:::4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:::5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:::6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:::1.2.3.4"); # Double :: ipv6test(!1,"::2222::4444:5555:6666:1.2.3.4"); ipv6test(!1,"::2222:3333::5555:6666:1.2.3.4"); ipv6test(!1,"::2222:3333:4444::6666:1.2.3.4"); ipv6test(!1,"::2222:3333:4444:5555::1.2.3.4"); ipv6test(!1,"1111::3333::5555:6666:1.2.3.4"); ipv6test(!1,"1111::3333:4444::6666:1.2.3.4"); ipv6test(!1,"1111::3333:4444:5555::1.2.3.4"); ipv6test(!1,"1111:2222::4444::6666:1.2.3.4"); ipv6test(!1,"1111:2222::4444:5555::1.2.3.4"); ipv6test(!1,"1111:2222:3333::5555::1.2.3.4"); # Missing parts ipv6test(!1,"::."); ipv6test(!1,"::.."); ipv6test(!1,"::..."); ipv6test(!1,"::1..."); ipv6test(!1,"::1.2.."); ipv6test(!1,"::1.2.3."); ipv6test(!1,"::.2.."); ipv6test(!1,"::.2.3."); ipv6test(!1,"::.2.3.4"); ipv6test(!1,"::..3."); ipv6test(!1,"::..3.4"); ipv6test(!1,"::...4"); # Extra : in front ipv6test(!1,":1111:2222:3333:4444:5555:6666:7777::"); ipv6test(!1,":1111:2222:3333:4444:5555:6666::"); ipv6test(!1,":1111:2222:3333:4444:5555::"); ipv6test(!1,":1111:2222:3333:4444::"); ipv6test(!1,":1111:2222:3333::"); ipv6test(!1,":1111:2222::"); ipv6test(!1,":1111::"); ipv6test(!1,":::"); ipv6test(!1,":1111:2222:3333:4444:5555:6666::8888"); ipv6test(!1,":1111:2222:3333:4444:5555::8888"); ipv6test(!1,":1111:2222:3333:4444::8888"); ipv6test(!1,":1111:2222:3333::8888"); ipv6test(!1,":1111:2222::8888"); ipv6test(!1,":1111::8888"); ipv6test(!1,":::8888"); ipv6test(!1,":1111:2222:3333:4444:5555::7777:8888"); ipv6test(!1,":1111:2222:3333:4444::7777:8888"); ipv6test(!1,":1111:2222:3333::7777:8888"); ipv6test(!1,":1111:2222::7777:8888"); ipv6test(!1,":1111::7777:8888"); ipv6test(!1,":::7777:8888"); ipv6test(!1,":1111:2222:3333:4444::6666:7777:8888"); ipv6test(!1,":1111:2222:3333::6666:7777:8888"); ipv6test(!1,":1111:2222::6666:7777:8888"); ipv6test(!1,":1111::6666:7777:8888"); ipv6test(!1,":::6666:7777:8888"); ipv6test(!1,":1111:2222:3333::5555:6666:7777:8888"); ipv6test(!1,":1111:2222::5555:6666:7777:8888"); ipv6test(!1,":1111::5555:6666:7777:8888"); ipv6test(!1,":::5555:6666:7777:8888"); ipv6test(!1,":1111:2222::4444:5555:6666:7777:8888"); ipv6test(!1,":1111::4444:5555:6666:7777:8888"); ipv6test(!1,":::4444:5555:6666:7777:8888"); ipv6test(!1,":1111::3333:4444:5555:6666:7777:8888"); ipv6test(!1,":::3333:4444:5555:6666:7777:8888"); ipv6test(!1,":::2222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,":1111:2222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444:5555::1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444::1.2.3.4"); ipv6test(!1,":1111:2222:3333::1.2.3.4"); ipv6test(!1,":1111:2222::1.2.3.4"); ipv6test(!1,":1111::1.2.3.4"); ipv6test(!1,":::1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444::6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333::6666:1.2.3.4"); ipv6test(!1,":1111:2222::6666:1.2.3.4"); ipv6test(!1,":1111::6666:1.2.3.4"); ipv6test(!1,":::6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333::5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222::5555:6666:1.2.3.4"); ipv6test(!1,":1111::5555:6666:1.2.3.4"); ipv6test(!1,":::5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222::4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111::4444:5555:6666:1.2.3.4"); ipv6test(!1,":::4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111::3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":::2222:3333:4444:5555:6666:1.2.3.4"); # Extra : at end ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:::"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:::"); ipv6test(!1,"1111:2222:3333:4444:5555:::"); ipv6test(!1,"1111:2222:3333:4444:::"); ipv6test(!1,"1111:2222:3333:::"); ipv6test(!1,"1111:2222:::"); ipv6test(!1,"1111:::"); ipv6test(!1,":::"); ipv6test(!1,"1111:2222:3333:4444:5555:6666::8888:"); ipv6test(!1,"1111:2222:3333:4444:5555::8888:"); ipv6test(!1,"1111:2222:3333:4444::8888:"); ipv6test(!1,"1111:2222:3333::8888:"); ipv6test(!1,"1111:2222::8888:"); ipv6test(!1,"1111::8888:"); ipv6test(!1,"::8888:"); ipv6test(!1,"1111:2222:3333:4444:5555::7777:8888:"); ipv6test(!1,"1111:2222:3333:4444::7777:8888:"); ipv6test(!1,"1111:2222:3333::7777:8888:"); ipv6test(!1,"1111:2222::7777:8888:"); ipv6test(!1,"1111::7777:8888:"); ipv6test(!1,"::7777:8888:"); ipv6test(!1,"1111:2222:3333:4444::6666:7777:8888:"); ipv6test(!1,"1111:2222:3333::6666:7777:8888:"); ipv6test(!1,"1111:2222::6666:7777:8888:"); ipv6test(!1,"1111::6666:7777:8888:"); ipv6test(!1,"::6666:7777:8888:"); ipv6test(!1,"1111:2222:3333::5555:6666:7777:8888:"); ipv6test(!1,"1111:2222::5555:6666:7777:8888:"); ipv6test(!1,"1111::5555:6666:7777:8888:"); ipv6test(!1,"::5555:6666:7777:8888:"); ipv6test(!1,"1111:2222::4444:5555:6666:7777:8888:"); ipv6test(!1,"1111::4444:5555:6666:7777:8888:"); ipv6test(!1,"::4444:5555:6666:7777:8888:"); ipv6test(!1,"1111::3333:4444:5555:6666:7777:8888:"); ipv6test(!1,"::3333:4444:5555:6666:7777:8888:"); ipv6test(!1,"::2222:3333:4444:5555:6666:7777:8888:"); # Additional cases: http://crisp.tweakblogs.net/blog/2031/ipv6-validation-%28and-caveats%29.html ipv6test(1,"0:a:b:c:d:e:f::"); ipv6test(1,"::0:a:b:c:d:e:f"); # syntactically correct, but bad form (::0:... could be combined) ipv6test(1,"a:b:c:d:e:f:0::"); ipv6test(!1,"':10.0.0.1"); # Testing for IPv4 in IPv6 format: ipv6test(1,"::10.0.0.1"); ipv6test(1,"::FFFF:10.0.0.1"); # NB All the regexes fail to detect somewhat suspect v4 in v6 addresses # Leaving this test out #ipv6test(!1,"1::1.2.3.4"); # Testing for "%" at end of IPv6 address ipv6test(!1,"2001:db8::%1"); - 3RevisionsForks
IPv4 match
/\b(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b/gExcerpt from RFC3330 (IANA, September 2002) Summary Table Address Block Present Use Reference ---------------------------------------------------------------------- 0.0.0.0/8 "This" Network [RFC1700, page 4] 10.0.0.0/8 Private-Use Networks [RFC1918] 14.0.0.0/8 Public-Data Networks [RFC1700, page 181] 24.0.0.0/8 Cable Television Networks -- 39.0.0.0/8 Reserved but subject to allocation [RFC1797] 127.0.0.0/8 Loopback [RFC1700, page 5] 128.0.0.0/16 Reserved but subject to allocation -- 169.254.0.0/16 Link Local -- 172.16.0.0/12 Private-Use Networks [RFC1918] 191.255.0.0/16 Reserved but subject to allocation -- 192.0.0.0/24 Reserved but subject to allocation -- 192.0.2.0/24 Test-Net 192.88.99.0/24 6to4 Relay Anycast [RFC3068] 192.168.0.0/16 Private-Use Networks [RFC1918] 198.18.0.0/15 Network Interconnect Device Benchmark Testing [RFC2544] 223.255.255.0/24 Reserved but subject to allocation -- 224.0.0.0/4 Multicast [RFC3171] 240.0.0.0/4 Reserved for Future Use [RFC1700, page 4] List of reserved /8 blocks[edit] Block Organization IANA date RIR date Notes 0.0.0.0/8 IANA - Local Identification 1981-09 Originally IANA - Reserved 1981-09. 0.0.0.0/8 reserved for self-identification (RFC 6890). 10.0.0.0/8 IANA - Private Use 1995-06 Reserved for Private-Use Networks (RFC 1918). Formerly ARPANET.[1] 127.0.0.0/8 IANA - Loopback 1981-09 127.0.0.0/8 is reserved for Loopback (RFC 6890). 224.0.0.0/8–239.0.0.0/8 Multicast 1981-09 1991-05-22 Multicast (formerly "Class D") (RFC 5771) registered in [1]. 224.0.0.0/4. 240.0.0.0/8–255.0.0.0/8 Future Use 1981-09 Reserved for future use (formerly "Class E") (RFC 1112). 255.255.255.255 is reserved for "limited broadcast" destination address (RFC 919) and (RFC 922). 240.0.0.0/4. 10.10.1.97/23 IP Address 10.10.1.97/23 belongs to the 10.10.0.0/23 Network. The network Address is 10.10.0.0 and the Broadcast Address is 10.10.1.255. 192.168.0.3/25 IP Address 192.168.0.3/25 belongs to the 192.168.0.0/25 Network. The network Address is 192.168.0.0 and the Broadcast Address is 192.168.0.127. 172.16.5.34/26 IP Address 172.16.5.34/26 belongs to the 172.16.5.0/26 Network. The network Address is 172.16.5.0 and the Broadcast Address is 172.16.5.63. 192.168.11.17/28 IP Address 192.168.11.17/28 belongs to the 192.168.11.16/28 Network. The network Address is 192.168.11.16 and the Broadcast Address is 192.168.11.31. Class A 0--- : If the first bit of an IPv4 address is "0", this means that the address is part of class A. This means that any address from 0.0.0.0 to 127.255.255.255 is in class A. Class B 10-- : Class B includes any address from 128.0.0.0 to 191.255.255.255. This represents the addresses that have a "1" for their first bit, but don't have a "1" for their second bit. Class C 110- : Class C is defined as the addresses ranging from 192.0.0.0 to 223.255.255.255. This represents all of the addresses with a "1" for their first two bits, but without a "1" for their third bit. Class D 1110 : This class includes addresses that have "111" as their first three bits, but a "0" for the next bit. This address range includes addresses from 224.0.0.0 to 239.255.255.255. Class E 1111 : This class defines addresses between 240.0.0.0 and 255.255.255.255. Any address that begins with four "1" bits is included in this class. Prefix Designation Date WHOIS RDAP Status [1] Note 000/8 IANA - Local Identification 1981-09 RESERVED [2] 001/8 APNIC 2010-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 002/8 RIPE NCC 2009-09 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 003/8 General Electric Company 1994-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 004/8 Level 3 Communications, Inc. 1992-12 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 005/8 RIPE NCC 2010-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 006/8 Army Information Systems Center 1994-02 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 007/8 Administered by ARIN 1995-04 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 008/8 Level 3 Communications, Inc. 1992-12 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 009/8 IBM 1992-08 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 010/8 IANA - Private Use 1995-06 RESERVED [3] 011/8 DoD Intel Information Systems 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 012/8 AT&T Bell Laboratories 1995-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 013/8 Administered by ARIN 1991-09 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 014/8 APNIC 2010-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED [4] 015/8 Hewlett-Packard Company 1994-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 016/8 Digital Equipment Corporation 1994-11 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 017/8 Apple Computer Inc. 1992-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 018/8 MIT 1994-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 019/8 Ford Motor Company 1995-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 020/8 Computer Sciences Corporation 1994-10 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 021/8 DDN-RVN 1991-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 022/8 Defense Information Systems Agency 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 023/8 ARIN 2010-11 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 024/8 ARIN 2001-05 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 025/8 UK Ministry of Defence 1995-01 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 026/8 Defense Information Systems Agency 1995-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 027/8 APNIC 2010-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 028/8 DSI-North 1992-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 029/8 Defense Information Systems Agency 1991-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 030/8 Defense Information Systems Agency 1991-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 031/8 RIPE NCC 2010-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 032/8 Administered by ARIN 1994-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 033/8 DLA Systems Automation Center 1991-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 034/8 Halliburton Company 1993-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 035/8 Administered by ARIN 1994-04 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 036/8 APNIC 2010-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 037/8 RIPE NCC 2010-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 038/8 PSINet, Inc. 1994-09 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 039/8 APNIC 2011-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 040/8 Administered by ARIN 1994-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 041/8 AFRINIC 2005-04 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 042/8 APNIC 2010-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 043/8 Administered by APNIC 1991-01 whois.apnic.net https://rdap.apnic.net/ LEGACY 044/8 Amateur Radio Digital Communications 1992-07 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 045/8 Administered by ARIN 1995-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 046/8 RIPE NCC 2009-09 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 047/8 Administered by ARIN 1991-01 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 048/8 Prudential Securities Inc. 1995-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 049/8 APNIC 2010-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 050/8 ARIN 2010-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 051/8 Administered by RIPE NCC 1994-08 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 052/8 Administered by ARIN 1991-12 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 053/8 Daimler AG 1993-10 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 054/8 Administered by ARIN 1992-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 055/8 DoD Network Information Center 1995-04 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 056/8 US Postal Service 1994-06 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 057/8 Societe Internationale de Telecommunications Aeronautiques 1995-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY S.C.R.L. 058/8 APNIC 2004-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 059/8 APNIC 2004-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 060/8 APNIC 2003-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 061/8 APNIC 1997-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 062/8 RIPE NCC 1997-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 063/8 ARIN 1997-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 064/8 ARIN 1999-07 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 065/8 ARIN 2000-07 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 066/8 ARIN 2000-07 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 067/8 ARIN 2001-05 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 068/8 ARIN 2001-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 069/8 ARIN 2002-08 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 070/8 ARIN 2004-01 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 071/8 ARIN 2004-08 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 072/8 ARIN 2004-08 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 073/8 ARIN 2005-03 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 074/8 ARIN 2005-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 075/8 ARIN 2005-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 076/8 ARIN 2005-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 077/8 RIPE NCC 2006-08 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 078/8 RIPE NCC 2006-08 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 079/8 RIPE NCC 2006-08 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 080/8 RIPE NCC 2001-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 081/8 RIPE NCC 2001-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 082/8 RIPE NCC 2002-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 083/8 RIPE NCC 2003-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 084/8 RIPE NCC 2003-11 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 085/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 086/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 087/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 088/8 RIPE NCC 2004-04 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 089/8 RIPE NCC 2005-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 090/8 RIPE NCC 2005-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 091/8 RIPE NCC 2005-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 092/8 RIPE NCC 2007-03 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 093/8 RIPE NCC 2007-03 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 094/8 RIPE NCC 2007-07 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 095/8 RIPE NCC 2007-07 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 096/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 097/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 098/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 099/8 ARIN 2006-10 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 100/8 ARIN 2010-11 whois.arin.net https://rdap.arin.net/registry ALLOCATED [5] http://rdap.arin.net/registry 101/8 APNIC 2010-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 102/8 AFRINIC 2011-02 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 103/8 APNIC 2011-02 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 104/8 ARIN 2011-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 105/8 AFRINIC 2010-11 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 106/8 APNIC 2011-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 107/8 ARIN 2010-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 108/8 ARIN 2008-12 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 109/8 RIPE NCC 2009-01 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 110/8 APNIC 2008-11 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 111/8 APNIC 2008-11 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 112/8 APNIC 2008-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 113/8 APNIC 2008-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 114/8 APNIC 2007-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 115/8 APNIC 2007-10 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 116/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 117/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 118/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 119/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 120/8 APNIC 2007-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 121/8 APNIC 2006-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 122/8 APNIC 2006-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 123/8 APNIC 2006-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 124/8 APNIC 2005-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 125/8 APNIC 2005-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 126/8 APNIC 2005-01 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 127/8 IANA - Loopback 1981-09 RESERVED [6] 128/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 129/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 130/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 131/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 132/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 133/8 Administered by APNIC 1997-03 whois.apnic.net https://rdap.apnic.net/ LEGACY 134/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 135/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 136/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 137/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 138/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 139/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 140/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 141/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 142/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 143/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 144/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 145/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 146/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 147/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 148/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 149/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 150/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 151/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 152/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 153/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 154/8 Administered by AFRINIC 1993-05 whois.afrinic.net https://rdap.afrinic.net/rdap/ LEGACY http://rdap.afrinic.net/rdap/ 155/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 156/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 157/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 158/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 159/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 160/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 161/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 162/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 163/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 164/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 165/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 166/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 167/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 168/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 169/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [7] http://rdap.arin.net/registry 170/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 171/8 Administered by APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ LEGACY 172/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [8] http://rdap.arin.net/registry 173/8 ARIN 2008-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 174/8 ARIN 2008-02 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 175/8 APNIC 2009-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 176/8 RIPE NCC 2010-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 177/8 LACNIC 2010-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 178/8 RIPE NCC 2009-01 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 179/8 LACNIC 2011-02 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 180/8 APNIC 2009-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 181/8 LACNIC 2010-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 182/8 APNIC 2009-08 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 183/8 APNIC 2009-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 184/8 ARIN 2008-12 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 185/8 RIPE NCC 2011-02 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 186/8 LACNIC 2007-09 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 187/8 LACNIC 2007-09 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 188/8 Administered by RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ LEGACY 189/8 LACNIC 1995-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 190/8 LACNIC 1995-06 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 191/8 Administered by LACNIC 1993-05 whois.lacnic.net https://rdap.lacnic.net/rdap/ LEGACY 192/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [9][10] http://rdap.arin.net/registry 193/8 RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 194/8 RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 195/8 RIPE NCC 1993-05 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 196/8 Administered by AFRINIC 1993-05 whois.afrinic.net https://rdap.afrinic.net/rdap/ LEGACY http://rdap.afrinic.net/rdap/ 197/8 AFRINIC 2008-10 whois.afrinic.net https://rdap.afrinic.net/rdap/ ALLOCATED http://rdap.afrinic.net/rdap/ 198/8 Administered by ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry LEGACY [11] http://rdap.arin.net/registry 199/8 ARIN 1993-05 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 200/8 LACNIC 2002-11 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 201/8 LACNIC 2003-04 whois.lacnic.net https://rdap.lacnic.net/rdap/ ALLOCATED 202/8 APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 203/8 APNIC 1993-05 whois.apnic.net https://rdap.apnic.net/ ALLOCATED [12] 204/8 ARIN 1994-03 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 205/8 ARIN 1994-03 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 206/8 ARIN 1995-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 207/8 ARIN 1995-11 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 208/8 ARIN 1996-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 209/8 ARIN 1996-06 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 210/8 APNIC 1996-06 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 211/8 APNIC 1996-06 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 212/8 RIPE NCC 1997-10 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 213/8 RIPE NCC 1993-10 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 214/8 US-DOD 1998-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 215/8 US-DOD 1998-03 whois.arin.net https://rdap.arin.net/registry LEGACY http://rdap.arin.net/registry 216/8 ARIN 1998-04 whois.arin.net https://rdap.arin.net/registry ALLOCATED http://rdap.arin.net/registry 217/8 RIPE NCC 2000-06 whois.ripe.net https://rdap.db.ripe.net/ ALLOCATED 218/8 APNIC 2000-12 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 219/8 APNIC 2001-09 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 220/8 APNIC 2001-12 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 221/8 APNIC 2002-07 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 222/8 APNIC 2003-02 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 223/8 APNIC 2010-04 whois.apnic.net https://rdap.apnic.net/ ALLOCATED 224/8 Multicast 1981-09 RESERVED [13] 225/8 Multicast 1981-09 RESERVED [13] 226/8 Multicast 1981-09 RESERVED [13] 227/8 Multicast 1981-09 RESERVED [13] 228/8 Multicast 1981-09 RESERVED [13] 229/8 Multicast 1981-09 RESERVED [13] 230/8 Multicast 1981-09 RESERVED [13] 231/8 Multicast 1981-09 RESERVED [13] 232/8 Multicast 1981-09 RESERVED [13] 233/8 Multicast 1981-09 RESERVED [13] 234/8 Multicast 1981-09 RESERVED [13][14] 235/8 Multicast 1981-09 RESERVED [13] 236/8 Multicast 1981-09 RESERVED [13] 237/8 Multicast 1981-09 RESERVED [13] 238/8 Multicast 1981-09 RESERVED [13] 239/8 Multicast 1981-09 RESERVED [13][15] 240/8 Future use 1981-09 RESERVED [16] 241/8 Future use 1981-09 RESERVED [16] 242/8 Future use 1981-09 RESERVED [16] 243/8 Future use 1981-09 RESERVED [16] 244/8 Future use 1981-09 RESERVED [16] 245/8 Future use 1981-09 RESERVED [16] 246/8 Future use 1981-09 RESERVED [16] 247/8 Future use 1981-09 RESERVED [16] 248/8 Future use 1981-09 RESERVED [16] 249/8 Future use 1981-09 RESERVED [16] 250/8 Future use 1981-09 RESERVED [16] 251/8 Future use 1981-09 RESERVED [16] 252/8 Future use 1981-09 RESERVED [16] 253/8 Future use 1981-09 RESERVED [16] 254/8 Future use 1981-09 RESERVED [16] 255/8 Future use 1981-09 RESERVED [16][17] * Full form of IPv6: e80:0000:0000:0000:0204:61ff:fe9d:f156 * Drop leading zeroes: fe80:0:0:0:204:61ff:fe9d:f156 * Collapse multiple zeroes to :: in the IPv6 address: fe80::204:61ff:fe9d:f156 * IPv4 dotted quad at the end: fe80:0000:0000:0000:0204:61ff:254.157.241.86 * Drop leading zeroes, IPv4 dotted quad at the end: fe80:0:0:0:0204:61ff:254.157.241.86 * Dotted quad at the end, multiple zeroes collapsed: fe80::204:61ff:254.157.241.86 * In addition, the regular expression matches these IPv6 forms: * Localhost: ::1 * Link-local prefix: fe80:: * Global unicast prefix: 2001:: * Invalid IPv6 addresses: * 1111:2222:3333:4444::5555: * 1111:2222:3333::5555: * 1111:2222::5555: * 1111::5555: * ::5555: foreach my $should ( '::', '::1', 'fe02::1', '::ffff:192.0.2.1', '2001:DB8::42', '2001:DB8:1234:5678:90ab:cdef:0123:4567', '2001:DB8:1234:5678:90ab:cdef:0123::', '2001:DB8:1234:5678:90ab:cdef::0123', '2001:DB8:1234:5678:90ab:cdef:192.0.2.1', '2001:DB8:1234:5678:90ab:cdef:192.0.2.1', ) { like($should, $anchored, "should be IPv6: [$should]"); } foreach my $nope ( '127.0.0.1', '', ' ', '192.0.2.1', '2001', '2001:DB8', '2001:DB8:', '2001:DB8::42::1', '2001:DB8:1234:5678:90ab:cdef:g123:4567', '2001:DB8:1234:5678:90ab:cdef:0123:4567:89', '2001:DB8:1234:5678:90ab:cdef:0123', ) { unlike($nope, $anchored, "should not be IPv6: [$nope]"); ipv6test(!1,"");# empty string ipv6test(1,"::1");# loopback, compressed, non-routable ipv6test(1,"::");# unspecified, compressed, non-routable ipv6test(1,"0:0:0:0:0:0:0:1");# loopback, full ipv6test(1,"0:0:0:0:0:0:0:0");# unspecified, full ipv6test(1,"2001:DB8:0:0:8:800:200C:417A");# unicast, full ipv6test(1,"FF01:0:0:0:0:0:0:101");# multicast, full ipv6test(1,"2001:DB8::8:800:200C:417A");# unicast, compressed ipv6test(1,"FF01::101");# multicast, compressed ipv6test(!1,"2001:DB8:0:0:8:800:200C:417A:221");# unicast, full ipv6test(!1,"FF01::101::2");# multicast, compressed ipv6test(1,"fe80::217:f2ff:fe07:ed62"); ipv6test(1,"2001:0000:1234:0000:0000:C1C0:ABCD:0876"); ipv6test(1,"3ffe:0b00:0000:0000:0001:0000:0000:000a"); ipv6test(1,"FF02:0000:0000:0000:0000:0000:0000:0001"); ipv6test(1,"0000:0000:0000:0000:0000:0000:0000:0001"); ipv6test(1,"0000:0000:0000:0000:0000:0000:0000:0000"); ipv6test(!1,"02001:0000:1234:0000:0000:C1C0:ABCD:0876"); # extra 0 not allowed! ipv6test(!1,"2001:0000:1234:0000:00001:C1C0:ABCD:0876"); # extra 0 not allowed! #ipv6test(1," 2001:0000:1234:0000:0000:C1C0:ABCD:0876"); # leading space #ipv6test(1,"2001:0000:1234:0000:0000:C1C0:ABCD:0876"); # trailing space #ipv6test(1," 2001:0000:1234:0000:0000:C1C0:ABCD:0876 "); # leading and trailing space ipv6test(!1,"2001:0000:1234:0000:0000:C1C0:ABCD:0876 0"); # junk after valid address ipv6test(!1,"2001:0000:1234: 0000:0000:C1C0:ABCD:0876"); # internal space ipv6test(!1,"3ffe:0b00:0000:0001:0000:0000:000a"); # seven segments ipv6test(!1,"FF02:0000:0000:0000:0000:0000:0000:0000:0001"); # nine segments ipv6test(!1,"3ffe:b00::1::a"); # double "::" ipv6test(!1,"::1111:2222:3333:4444:5555:6666::"); # double "::" ipv6test(1,"2::10"); ipv6test(1,"ff02::1"); ipv6test(1,"fe80::"); ipv6test(1,"2002::"); ipv6test(1,"2001:db8::"); ipv6test(1,"2001:0db8:1234::"); ipv6test(1,"::ffff:0:0"); ipv6test(1,"::1"); ipv6test(1,"1:2:3:4:5:6:7:8"); ipv6test(1,"1:2:3:4:5:6::8"); ipv6test(1,"1:2:3:4:5::8"); ipv6test(1,"1:2:3:4::8"); ipv6test(1,"1:2:3::8"); ipv6test(1,"1:2::8"); ipv6test(1,"1::8"); ipv6test(1,"1::2:3:4:5:6:7"); ipv6test(1,"1::2:3:4:5:6"); ipv6test(1,"1::2:3:4:5"); ipv6test(1,"1::2:3:4"); ipv6test(1,"1::2:3"); ipv6test(1,"1::8"); ipv6test(1,"::2:3:4:5:6:7:8"); ipv6test(1,"::2:3:4:5:6:7"); ipv6test(1,"::2:3:4:5:6"); ipv6test(1,"::2:3:4:5"); ipv6test(1,"::2:3:4"); ipv6test(1,"::2:3"); ipv6test(1,"::8"); ipv6test(1,"1:2:3:4:5:6::"); ipv6test(1,"1:2:3:4:5::"); ipv6test(1,"1:2:3:4::"); ipv6test(1,"1:2:3::"); ipv6test(1,"1:2::"); ipv6test(1,"1::"); ipv6test(1,"1:2:3:4:5::7:8"); ipv6test(!1,"1:2:3::4:5::7:8"); # Double "::" ipv6test(!1,"12345::6:7:8"); ipv6test(1,"1:2:3:4::7:8"); ipv6test(1,"1:2:3::7:8"); ipv6test(1,"1:2::7:8"); ipv6test(1,"1::7:8"); # IPv4 addresses as dotted-quads ipv6test(1,"1:2:3:4:5:6:1.2.3.4"); ipv6test(1,"1:2:3:4:5::1.2.3.4"); ipv6test(1,"1:2:3:4::1.2.3.4"); ipv6test(1,"1:2:3::1.2.3.4"); ipv6test(1,"1:2::1.2.3.4"); ipv6test(1,"1::1.2.3.4"); ipv6test(1,"1:2:3:4::5:1.2.3.4"); ipv6test(1,"1:2:3::5:1.2.3.4"); ipv6test(1,"1:2::5:1.2.3.4"); ipv6test(1,"1::5:1.2.3.4"); ipv6test(1,"1::5:11.22.33.44"); ipv6test(!1,"1::5:400.2.3.4"); ipv6test(!1,"1::5:260.2.3.4"); ipv6test(!1,"1::5:256.2.3.4"); ipv6test(!1,"1::5:1.256.3.4"); ipv6test(!1,"1::5:1.2.256.4"); ipv6test(!1,"1::5:1.2.3.256"); ipv6test(!1,"1::5:300.2.3.4"); ipv6test(!1,"1::5:1.300.3.4"); ipv6test(!1,"1::5:1.2.300.4"); ipv6test(!1,"1::5:1.2.3.300"); ipv6test(!1,"1::5:900.2.3.4"); ipv6test(!1,"1::5:1.900.3.4"); ipv6test(!1,"1::5:1.2.900.4"); ipv6test(!1,"1::5:1.2.3.900"); ipv6test(!1,"1::5:300.300.300.300"); ipv6test(!1,"1::5:3000.30.30.30"); ipv6test(!1,"1::400.2.3.4"); ipv6test(!1,"1::260.2.3.4"); ipv6test(!1,"1::256.2.3.4"); ipv6test(!1,"1::1.256.3.4"); ipv6test(!1,"1::1.2.256.4"); ipv6test(!1,"1::1.2.3.256"); ipv6test(!1,"1::300.2.3.4"); ipv6test(!1,"1::1.300.3.4"); ipv6test(!1,"1::1.2.300.4"); ipv6test(!1,"1::1.2.3.300"); ipv6test(!1,"1::900.2.3.4"); ipv6test(!1,"1::1.900.3.4"); ipv6test(!1,"1::1.2.900.4"); ipv6test(!1,"1::1.2.3.900"); ipv6test(!1,"1::300.300.300.300"); ipv6test(!1,"1::3000.30.30.30"); ipv6test(!1,"::400.2.3.4"); ipv6test(!1,"::260.2.3.4"); ipv6test(!1,"::256.2.3.4"); ipv6test(!1,"::1.256.3.4"); ipv6test(!1,"::1.2.256.4"); ipv6test(!1,"::1.2.3.256"); ipv6test(!1,"::300.2.3.4"); ipv6test(!1,"::1.300.3.4"); ipv6test(!1,"::1.2.300.4"); ipv6test(!1,"::1.2.3.300"); ipv6test(!1,"::900.2.3.4"); ipv6test(!1,"::1.900.3.4"); ipv6test(!1,"::1.2.900.4"); ipv6test(!1,"::1.2.3.900"); ipv6test(!1,"::300.300.300.300"); ipv6test(!1,"::3000.30.30.30"); ipv6test(1,"fe80::217:f2ff:254.7.237.98"); ipv6test(1,"::ffff:192.168.1.26"); ipv6test(!1,"2001:1:1:1:1:1:255Z255X255Y255"); # garbage instead of "." in IPv4 ipv6test(!1,"::ffff:192x168.1.26"); # ditto ipv6test(1,"::ffff:192.168.1.1"); ipv6test(1,"0:0:0:0:0:0:13.1.68.3");# IPv4-compatible IPv6 address, full, deprecated ipv6test(1,"0:0:0:0:0:FFFF:129.144.52.38");# IPv4-mapped IPv6 address, full ipv6test(1,"::13.1.68.3");# IPv4-compatible IPv6 address, compressed, deprecated ipv6test(1,"::FFFF:129.144.52.38");# IPv4-mapped IPv6 address, compressed ipv6test(1,"fe80:0:0:0:204:61ff:254.157.241.86"); ipv6test(1,"fe80::204:61ff:254.157.241.86"); ipv6test(1,"::ffff:12.34.56.78"); ipv6test(!1,"::ffff:2.3.4"); ipv6test(!1,"::ffff:257.1.2.3"); ipv6test(!1,"1.2.3.4"); ipv6test(!1,"1.2.3.4:1111:2222:3333:4444::5555"); # Aeron ipv6test(!1,"1.2.3.4:1111:2222:3333::5555"); ipv6test(!1,"1.2.3.4:1111:2222::5555"); ipv6test(!1,"1.2.3.4:1111::5555"); ipv6test(!1,"1.2.3.4::5555"); ipv6test(!1,"1.2.3.4::"); # Testing IPv4 addresses represented as dotted-quads # Leading zero's in IPv4 addresses not allowed: some systems treat the leading "0" in ".086" as the start of an octal number # Update: The BNF in RFC-3986 explicitly defines the dec-octet (for IPv4 addresses) not to have a leading zero ipv6test(!1,"fe80:0000:0000:0000:0204:61ff:254.157.241.086"); ipv6test(1,"::ffff:192.0.2.128"); # but this is OK, since there's a single digit ipv6test(!1,"XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:00.00.00.00"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:000.000.000.000"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:256.256.256.256"); # Not testing address with subnet mask # ipv6test(1,"2001:0DB8:0000:CD30:0000:0000:0000:0000/60");# full, with prefix # ipv6test(1,"2001:0DB8::CD30:0:0:0:0/60");# compressed, with prefix # ipv6test(1,"2001:0DB8:0:CD30::/60");# compressed, with prefix #2 # ipv6test(1,"::/128");# compressed, unspecified address type, non-routable # ipv6test(1,"::1/128");# compressed, loopback address type, non-routable # ipv6test(1,"FF00::/8");# compressed, multicast address type # ipv6test(1,"FE80::/10");# compressed, link-local unicast, non-routable # ipv6test(1,"FEC0::/10");# compressed, site-local unicast, deprecated # ipv6test(!1,"124.15.6.89/60");# standard IPv4, prefix not allowed ipv6test(1,"fe80:0000:0000:0000:0204:61ff:fe9d:f156"); ipv6test(1,"fe80:0:0:0:204:61ff:fe9d:f156"); ipv6test(1,"fe80::204:61ff:fe9d:f156"); ipv6test(1,"::1"); ipv6test(1,"fe80::"); ipv6test(1,"fe80::1"); ipv6test(!1,":"); ipv6test(1,"::ffff:c000:280"); # Aeron supplied these test cases ipv6test(!1,"1111:2222:3333:4444::5555:"); ipv6test(!1,"1111:2222:3333::5555:"); ipv6test(!1,"1111:2222::5555:"); ipv6test(!1,"1111::5555:"); ipv6test(!1,"::5555:"); ipv6test(!1,":::"); ipv6test(!1,"1111:"); ipv6test(!1,":"); ipv6test(!1,":1111:2222:3333:4444::5555"); ipv6test(!1,":1111:2222:3333::5555"); ipv6test(!1,":1111:2222::5555"); ipv6test(!1,":1111::5555"); ipv6test(!1,":::5555"); ipv6test(!1,":::"); # Additional test cases # from http://rt.cpan.org/Public/Bug/Display.html?id=50693 ipv6test(1,"2001:0db8:85a3:0000:0000:8a2e:0370:7334"); ipv6test(1,"2001:db8:85a3:0:0:8a2e:370:7334"); ipv6test(1,"2001:db8:85a3::8a2e:370:7334"); ipv6test(1,"2001:0db8:0000:0000:0000:0000:1428:57ab"); ipv6test(1,"2001:0db8:0000:0000:0000::1428:57ab"); ipv6test(1,"2001:0db8:0:0:0:0:1428:57ab"); ipv6test(1,"2001:0db8:0:0::1428:57ab"); ipv6test(1,"2001:0db8::1428:57ab"); ipv6test(1,"2001:db8::1428:57ab"); ipv6test(1,"0000:0000:0000:0000:0000:0000:0000:0001"); ipv6test(1,"::1"); ipv6test(1,"::ffff:0c22:384e"); ipv6test(1,"2001:0db8:1234:0000:0000:0000:0000:0000"); ipv6test(1,"2001:0db8:1234:ffff:ffff:ffff:ffff:ffff"); ipv6test(1,"2001:db8:a::123"); ipv6test(1,"fe80::"); ipv6test(!1,"123"); ipv6test(!1,"ldkfj"); ipv6test(!1,"2001::FFD3::57ab"); ipv6test(!1,"2001:db8:85a3::8a2e:37023:7334"); ipv6test(!1,"2001:db8:85a3::8a2e:370k:7334"); ipv6test(!1,"1:2:3:4:5:6:7:8:9"); ipv6test(!1,"1::2::3"); ipv6test(!1,"1:::3:4:5"); ipv6test(!1,"1:2:3::4:5:6:7:8:9"); # New from Aeron ipv6test(1,"1111:2222:3333:4444:5555:6666:7777:8888"); ipv6test(1,"1111:2222:3333:4444:5555:6666:7777::"); ipv6test(1,"1111:2222:3333:4444:5555:6666::"); ipv6test(1,"1111:2222:3333:4444:5555::"); ipv6test(1,"1111:2222:3333:4444::"); ipv6test(1,"1111:2222:3333::"); ipv6test(1,"1111:2222::"); ipv6test(1,"1111::"); # ipv6test(1,"::"); #duplicate ipv6test(1,"1111:2222:3333:4444:5555:6666::8888"); ipv6test(1,"1111:2222:3333:4444:5555::8888"); ipv6test(1,"1111:2222:3333:4444::8888"); ipv6test(1,"1111:2222:3333::8888"); ipv6test(1,"1111:2222::8888"); ipv6test(1,"1111::8888"); ipv6test(1,"::8888"); ipv6test(1,"1111:2222:3333:4444:5555::7777:8888"); ipv6test(1,"1111:2222:3333:4444::7777:8888"); ipv6test(1,"1111:2222:3333::7777:8888"); ipv6test(1,"1111:2222::7777:8888"); ipv6test(1,"1111::7777:8888"); ipv6test(1,"::7777:8888"); ipv6test(1,"1111:2222:3333:4444::6666:7777:8888"); ipv6test(1,"1111:2222:3333::6666:7777:8888"); ipv6test(1,"1111:2222::6666:7777:8888"); ipv6test(1,"1111::6666:7777:8888"); ipv6test(1,"::6666:7777:8888"); ipv6test(1,"1111:2222:3333::5555:6666:7777:8888"); ipv6test(1,"1111:2222::5555:6666:7777:8888"); ipv6test(1,"1111::5555:6666:7777:8888"); ipv6test(1,"::5555:6666:7777:8888"); ipv6test(1,"1111:2222::4444:5555:6666:7777:8888"); ipv6test(1,"1111::4444:5555:6666:7777:8888"); ipv6test(1,"::4444:5555:6666:7777:8888"); ipv6test(1,"1111::3333:4444:5555:6666:7777:8888"); ipv6test(1,"::3333:4444:5555:6666:7777:8888"); ipv6test(1,"::2222:3333:4444:5555:6666:7777:8888"); ipv6test(1,"1111:2222:3333:4444:5555:6666:123.123.123.123"); ipv6test(1,"1111:2222:3333:4444:5555::123.123.123.123"); ipv6test(1,"1111:2222:3333:4444::123.123.123.123"); ipv6test(1,"1111:2222:3333::123.123.123.123"); ipv6test(1,"1111:2222::123.123.123.123"); ipv6test(1,"1111::123.123.123.123"); ipv6test(1,"::123.123.123.123"); ipv6test(1,"1111:2222:3333:4444::6666:123.123.123.123"); ipv6test(1,"1111:2222:3333::6666:123.123.123.123"); ipv6test(1,"1111:2222::6666:123.123.123.123"); ipv6test(1,"1111::6666:123.123.123.123"); ipv6test(1,"::6666:123.123.123.123"); ipv6test(1,"1111:2222:3333::5555:6666:123.123.123.123"); ipv6test(1,"1111:2222::5555:6666:123.123.123.123"); ipv6test(1,"1111::5555:6666:123.123.123.123"); ipv6test(1,"::5555:6666:123.123.123.123"); ipv6test(1,"1111:2222::4444:5555:6666:123.123.123.123"); ipv6test(1,"1111::4444:5555:6666:123.123.123.123"); ipv6test(1,"::4444:5555:6666:123.123.123.123"); ipv6test(1,"1111::3333:4444:5555:6666:123.123.123.123"); ipv6test(1,"::2222:3333:4444:5555:6666:123.123.123.123"); # Playing with combinations of "0" and "::" # NB: these are all sytactically correct, but are bad form # because "0" adjacent to "::" should be combined into "::" ipv6test(1,"::0:0:0:0:0:0:0"); ipv6test(1,"::0:0:0:0:0:0"); ipv6test(1,"::0:0:0:0:0"); ipv6test(1,"::0:0:0:0"); ipv6test(1,"::0:0:0"); ipv6test(1,"::0:0"); ipv6test(1,"::0"); ipv6test(1,"0:0:0:0:0:0:0::"); ipv6test(1,"0:0:0:0:0:0::"); ipv6test(1,"0:0:0:0:0::"); ipv6test(1,"0:0:0:0::"); ipv6test(1,"0:0:0::"); ipv6test(1,"0:0::"); ipv6test(1,"0::"); # New invalid from Aeron # Invalid data ipv6test(!1,"XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX"); # Too many components ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888:9999"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888::"); ipv6test(!1,"::2222:3333:4444:5555:6666:7777:8888:9999"); # Too few components ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777"); ipv6test(!1,"1111:2222:3333:4444:5555:6666"); ipv6test(!1,"1111:2222:3333:4444:5555"); ipv6test(!1,"1111:2222:3333:4444"); ipv6test(!1,"1111:2222:3333"); ipv6test(!1,"1111:2222"); ipv6test(!1,"1111"); # Missing : ipv6test(!1,"11112222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:22223333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:33334444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:44445555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:55556666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:66667777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:77778888"); # Missing : intended for :: ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888:"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:"); ipv6test(!1,"1111:2222:3333:4444:5555:"); ipv6test(!1,"1111:2222:3333:4444:"); ipv6test(!1,"1111:2222:3333:"); ipv6test(!1,"1111:2222:"); ipv6test(!1,"1111:"); ipv6test(!1,":"); ipv6test(!1,":8888"); ipv6test(!1,":7777:8888"); ipv6test(!1,":6666:7777:8888"); ipv6test(!1,":5555:6666:7777:8888"); ipv6test(!1,":4444:5555:6666:7777:8888"); ipv6test(!1,":3333:4444:5555:6666:7777:8888"); ipv6test(!1,":2222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,":1111:2222:3333:4444:5555:6666:7777:8888"); # ::: ipv6test(!1,":::2222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:::3333:4444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:::4444:5555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:::5555:6666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:::6666:7777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:::7777:8888"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:::8888"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:::"); # Double ::"); ipv6test(!1,"::2222::4444:5555:6666:7777:8888"); ipv6test(!1,"::2222:3333::5555:6666:7777:8888"); ipv6test(!1,"::2222:3333:4444::6666:7777:8888"); ipv6test(!1,"::2222:3333:4444:5555::7777:8888"); ipv6test(!1,"::2222:3333:4444:5555:7777::8888"); ipv6test(!1,"::2222:3333:4444:5555:7777:8888::"); ipv6test(!1,"1111::3333::5555:6666:7777:8888"); ipv6test(!1,"1111::3333:4444::6666:7777:8888"); ipv6test(!1,"1111::3333:4444:5555::7777:8888"); ipv6test(!1,"1111::3333:4444:5555:6666::8888"); ipv6test(!1,"1111::3333:4444:5555:6666:7777::"); ipv6test(!1,"1111:2222::4444::6666:7777:8888"); ipv6test(!1,"1111:2222::4444:5555::7777:8888"); ipv6test(!1,"1111:2222::4444:5555:6666::8888"); ipv6test(!1,"1111:2222::4444:5555:6666:7777::"); ipv6test(!1,"1111:2222:3333::5555::7777:8888"); ipv6test(!1,"1111:2222:3333::5555:6666::8888"); ipv6test(!1,"1111:2222:3333::5555:6666:7777::"); ipv6test(!1,"1111:2222:3333:4444::6666::8888"); ipv6test(!1,"1111:2222:3333:4444::6666:7777::"); ipv6test(!1,"1111:2222:3333:4444:5555::7777::"); # Too many components" ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666::1.2.3.4"); ipv6test(!1,"::2222:3333:4444:5555:6666:7777:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:1.2.3.4.5"); # Too few components ipv6test(!1,"1111:2222:3333:4444:5555:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:1.2.3.4"); ipv6test(!1,"1111:2222:3333:1.2.3.4"); ipv6test(!1,"1111:2222:1.2.3.4"); ipv6test(!1,"1111:1.2.3.4"); ipv6test(!1,"1.2.3.4"); # Missing : ipv6test(!1,"11112222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:22223333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:33334444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:44445555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:55556666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:66661.2.3.4"); # Missing . ipv6test(!1,"1111:2222:3333:4444:5555:6666:255255.255.255"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:255.255255.255"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:255.255.255255"); # Missing : intended for :: ipv6test(!1,":1.2.3.4"); ipv6test(!1,":6666:1.2.3.4"); ipv6test(!1,":5555:6666:1.2.3.4"); ipv6test(!1,":4444:5555:6666:1.2.3.4"); ipv6test(!1,":3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":2222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444:5555:6666:1.2.3.4"); # ::: ipv6test(!1,":::2222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:::3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:::4444:5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:::5555:6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:::6666:1.2.3.4"); ipv6test(!1,"1111:2222:3333:4444:5555:::1.2.3.4"); # Double :: ipv6test(!1,"::2222::4444:5555:6666:1.2.3.4"); ipv6test(!1,"::2222:3333::5555:6666:1.2.3.4"); ipv6test(!1,"::2222:3333:4444::6666:1.2.3.4"); ipv6test(!1,"::2222:3333:4444:5555::1.2.3.4"); ipv6test(!1,"1111::3333::5555:6666:1.2.3.4"); ipv6test(!1,"1111::3333:4444::6666:1.2.3.4"); ipv6test(!1,"1111::3333:4444:5555::1.2.3.4"); ipv6test(!1,"1111:2222::4444::6666:1.2.3.4"); ipv6test(!1,"1111:2222::4444:5555::1.2.3.4"); ipv6test(!1,"1111:2222:3333::5555::1.2.3.4"); # Missing parts ipv6test(!1,"::."); ipv6test(!1,"::.."); ipv6test(!1,"::..."); ipv6test(!1,"::1..."); ipv6test(!1,"::1.2.."); ipv6test(!1,"::1.2.3."); ipv6test(!1,"::.2.."); ipv6test(!1,"::.2.3."); ipv6test(!1,"::.2.3.4"); ipv6test(!1,"::..3."); ipv6test(!1,"::..3.4"); ipv6test(!1,"::...4"); # Extra : in front ipv6test(!1,":1111:2222:3333:4444:5555:6666:7777::"); ipv6test(!1,":1111:2222:3333:4444:5555:6666::"); ipv6test(!1,":1111:2222:3333:4444:5555::"); ipv6test(!1,":1111:2222:3333:4444::"); ipv6test(!1,":1111:2222:3333::"); ipv6test(!1,":1111:2222::"); ipv6test(!1,":1111::"); ipv6test(!1,":::"); ipv6test(!1,":1111:2222:3333:4444:5555:6666::8888"); ipv6test(!1,":1111:2222:3333:4444:5555::8888"); ipv6test(!1,":1111:2222:3333:4444::8888"); ipv6test(!1,":1111:2222:3333::8888"); ipv6test(!1,":1111:2222::8888"); ipv6test(!1,":1111::8888"); ipv6test(!1,":::8888"); ipv6test(!1,":1111:2222:3333:4444:5555::7777:8888"); ipv6test(!1,":1111:2222:3333:4444::7777:8888"); ipv6test(!1,":1111:2222:3333::7777:8888"); ipv6test(!1,":1111:2222::7777:8888"); ipv6test(!1,":1111::7777:8888"); ipv6test(!1,":::7777:8888"); ipv6test(!1,":1111:2222:3333:4444::6666:7777:8888"); ipv6test(!1,":1111:2222:3333::6666:7777:8888"); ipv6test(!1,":1111:2222::6666:7777:8888"); ipv6test(!1,":1111::6666:7777:8888"); ipv6test(!1,":::6666:7777:8888"); ipv6test(!1,":1111:2222:3333::5555:6666:7777:8888"); ipv6test(!1,":1111:2222::5555:6666:7777:8888"); ipv6test(!1,":1111::5555:6666:7777:8888"); ipv6test(!1,":::5555:6666:7777:8888"); ipv6test(!1,":1111:2222::4444:5555:6666:7777:8888"); ipv6test(!1,":1111::4444:5555:6666:7777:8888"); ipv6test(!1,":::4444:5555:6666:7777:8888"); ipv6test(!1,":1111::3333:4444:5555:6666:7777:8888"); ipv6test(!1,":::3333:4444:5555:6666:7777:8888"); ipv6test(!1,":::2222:3333:4444:5555:6666:7777:8888"); ipv6test(!1,":1111:2222:3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444:5555::1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444::1.2.3.4"); ipv6test(!1,":1111:2222:3333::1.2.3.4"); ipv6test(!1,":1111:2222::1.2.3.4"); ipv6test(!1,":1111::1.2.3.4"); ipv6test(!1,":::1.2.3.4"); ipv6test(!1,":1111:2222:3333:4444::6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333::6666:1.2.3.4"); ipv6test(!1,":1111:2222::6666:1.2.3.4"); ipv6test(!1,":1111::6666:1.2.3.4"); ipv6test(!1,":::6666:1.2.3.4"); ipv6test(!1,":1111:2222:3333::5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222::5555:6666:1.2.3.4"); ipv6test(!1,":1111::5555:6666:1.2.3.4"); ipv6test(!1,":::5555:6666:1.2.3.4"); ipv6test(!1,":1111:2222::4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111::4444:5555:6666:1.2.3.4"); ipv6test(!1,":::4444:5555:6666:1.2.3.4"); ipv6test(!1,":1111::3333:4444:5555:6666:1.2.3.4"); ipv6test(!1,":::2222:3333:4444:5555:6666:1.2.3.4"); # Extra : at end ipv6test(!1,"1111:2222:3333:4444:5555:6666:7777:::"); ipv6test(!1,"1111:2222:3333:4444:5555:6666:::"); ipv6test(!1,"1111:2222:3333:4444:5555:::"); ipv6test(!1,"1111:2222:3333:4444:::"); ipv6test(!1,"1111:2222:3333:::"); ipv6test(!1,"1111:2222:::"); ipv6test(!1,"1111:::"); ipv6test(!1,":::"); ipv6test(!1,"1111:2222:3333:4444:5555:6666::8888:"); ipv6test(!1,"1111:2222:3333:4444:5555::8888:"); ipv6test(!1,"1111:2222:3333:4444::8888:"); ipv6test(!1,"1111:2222:3333::8888:"); ipv6test(!1,"1111:2222::8888:"); ipv6test(!1,"1111::8888:"); ipv6test(!1,"::8888:"); ipv6test(!1,"1111:2222:3333:4444:5555::7777:8888:"); ipv6test(!1,"1111:2222:3333:4444::7777:8888:"); ipv6test(!1,"1111:2222:3333::7777:8888:"); ipv6test(!1,"1111:2222::7777:8888:"); ipv6test(!1,"1111::7777:8888:"); ipv6test(!1,"::7777:8888:"); ipv6test(!1,"1111:2222:3333:4444::6666:7777:8888:"); ipv6test(!1,"1111:2222:3333::6666:7777:8888:"); ipv6test(!1,"1111:2222::6666:7777:8888:"); ipv6test(!1,"1111::6666:7777:8888:"); ipv6test(!1,"::6666:7777:8888:"); ipv6test(!1,"1111:2222:3333::5555:6666:7777:8888:"); ipv6test(!1,"1111:2222::5555:6666:7777:8888:"); ipv6test(!1,"1111::5555:6666:7777:8888:"); ipv6test(!1,"::5555:6666:7777:8888:"); ipv6test(!1,"1111:2222::4444:5555:6666:7777:8888:"); ipv6test(!1,"1111::4444:5555:6666:7777:8888:"); ipv6test(!1,"::4444:5555:6666:7777:8888:"); ipv6test(!1,"1111::3333:4444:5555:6666:7777:8888:"); ipv6test(!1,"::3333:4444:5555:6666:7777:8888:"); ipv6test(!1,"::2222:3333:4444:5555:6666:7777:8888:"); # Additional cases: http://crisp.tweakblogs.net/blog/2031/ipv6-validation-%28and-caveats%29.html ipv6test(1,"0:a:b:c:d:e:f::"); ipv6test(1,"::0:a:b:c:d:e:f"); # syntactically correct, but bad form (::0:... could be combined) ipv6test(1,"a:b:c:d:e:f:0::"); ipv6test(!1,"':10.0.0.1"); # Testing for IPv4 in IPv6 format: ipv6test(1,"::10.0.0.1"); ipv6test(1,"::FFFF:10.0.0.1"); # NB All the regexes fail to detect somewhat suspect v4 in v6 addresses # Leaving this test out #ipv6test(!1,"1::1.2.3.4"); # Testing for "%" at end of IPv6 address ipv6test(!1,"2001:db8::%1");