Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: [PHP] IPv6 in einzelne Bytes zerlegen

  Alt 20. Sep 2008, 18:44
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat