Moin,
laut der IPv6-Spezifikation darf :: nur einmal vorkommen. Soll heissen, wenn du explode(':', $foo) aufrufst und weniger als 8 Elemente hast, musst du das leere Element "kopieren". Wenn du 8 Elemente hast, langts den leeren String als 0 hinzuschreiben.
Beispielcode ausm Kopf:
Code:
$temp_ip_arr = explode(':', $ip_address);
$ip_arr = array();
$count = count($temp_ip_arr);
$missing_blocks = 9 - $count;
for ($i = 0; $i < $count; $i++)
{
if ($temp_ip_arr[$i])
{
$ip_arr[] = $temp_ip_arr[$i];
}
else
{
for ($j = 0, $j <= $missing_blocks; $j++)
{
$ip_arr[] = $temp_ip_arr[$i];
}
}
}
Der Code ist ungetestet, und auch die
IP-Adressen ::1 und :: duerften damit IMO nicht ohne weiteres verarbeitbar sein. Fuer mehr fehlt mir aber grad die Lust
Greetz
alcaeus