TS: Datentypen in PHP 32 Bit

Beitrag lesen

Hello,

kleines Problem:

Netmask Bin: 11111111000000000000000000000000
Netmask: 255.0.0.0

## funktioniert bei Reg32 nicht  
##echo 'Netmask v4: ' . long2ip(decbin($net_mask_bin_str)) . PHP_EOL;

Da wird $net_mask_bin_str dann leider in float umgewandelt, was long2ip() dann nicht verkraftet. Kann ich den Float irgendwie vermeiden?

Würg-Around gibt es zwar schon, aber ist ja vielleicht unnötig?

   $_net32_bin[0] = substr($net_mask_bin_str, 0, 8);
   $_net32_bin[1] = substr($net_mask_bin_str, 8, 8);
   $_net32_bin[2] = substr($net_mask_bin_str, 16, 8);
   $_net32_bin[3] = substr($net_mask_bin_str, 24, 8);
   
   $netmask_ipstr = implode('.', array_map('bindec', $_net32_bin));

Im 64-Bit-System funktioniert es, weil da der Überlauf noch weit entfernt ist.

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.