IPv6 is currently not supported. There are two missing ingredients:
- Detecting whether an IP is v4 or v6. This is tricky, given the very loose format of IPv6 addresses
- Parsing IPv6 addresses requires PHP to be compiled with IPv6 support (otherwise inet_ntop() and inet_pton() are not available). If we rely on inet_pton/_ntop and IPv6 isn't compiled in then IPv4 operations will also fail. Bummer. So we still have to overcome #1 in order to use ip2long with IPv4 and inet_* with IPv6.
- inet_pton does not accept shorthand addresses like ff05::1 or ::127.0.0.1
- inet_pton() does not recognize netmask notation which makes it useless for our purpose. We'd have to expand the IPv6 into a binary string and do slow, text-based, binary manipulation for each IP. Consider a blacklist with 200 addresses in IPv6 format, times 25msec each, on each page load.
So, my conclusion is that PHP must first provide solid IPv6 handling before I can add IPv6 support to Admin Tools.
PS: You may want to make this ticket public (after editing out the IPv6 address of the attacker). It's the best explanation I've written as to why IPv6 is not supported by Admin Tools ;)
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!