El 28/05/14 10:44, Alberto José García Fumero escribió:
El mié, 28-05-2014 a las 12:05 +0200, Maykel Moya escribió:
On 27/05/14 23:10, Alberto José García Fumero wrote:

Tengo mi matemática bastante oxidada, y no logro razonar cómo se hace
esto.

Por ejemplo, el número 3232235530 debería ser una  IP del  rango
192.168.0.x
Hola Fumero

Valiéndote de:
- La tabla de la verdad del AND (x&  y == 1 si y sólo si ambos valen 1)
- El operador de rotación binaria '>>' (corre los bits una cantidad de
posiciones a la derecha e introduce 0's por el otro extremo) 0b1100>>  1
= 0b0110, 0b0110>>  1 = 0b0011, 0b0011>>  1 = 0b0001, etc...

puedes entonces:

In [1]: ip = 3232235530

In [2]: ip>>  24 # 1er octeto, corres 24 a la derecha
Out[2]: 192

In [3]: ip>>  16&  0xff # 2do octeto, corres 16 a la derecha y te quedas
con el último byte
Out[3]: 168

In [4]: ip>>  8&  0xff # 3er octeto, corres 8 a la derecha y te quedas
con el último byte
Out[4]: 0

In [5]: ip&  0xff # 4to octeto, te quedas con el último byte
Out[5]: 10

Saludos,
maykel
Gracias a Maykel, Mariel Alberto, Dermidio (aunque no tengo salida al
mar).

Ahora lo que me queda es estudiar, para ver cómo lo estructuro de la
mejor forma posible. Me gustaría sacar estas cuentas en una página PHP.

Gracias de nuevo a todos.


______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
muy sucio este php pero te envio a lo rápido algo
<?php
$miip = "192.168.0.10";
$miarreglo = explode ('.', $miip);
print_r ($miarreglo);
echo "<br><br><br>";
$oct1 = $miarreglo[0];
$oct2 = $miarreglo[1];
$oct3 = $miarreglo[2];
$oct4 = $miarreglo[3];
echo $oct1."<br>";
echo $oct2."<br>";
echo $oct3."<br>";
echo $oct4."<br>";

//valores
echo "<br><br><br>";
$varoct1 = $oct1*pow(256,3); //256³ o 256 ^3
echo $varoct1."<br>";
$varoct2 = $oct2*pow(256,2);//256² o 256 ^2
echo $varoct2."<br>";
$varoct3 = $oct3*(256);
echo $varoct1."<br>";
$varoct4 = $oct4;
echo $varoct4."<br>";

echo "<br><br><br>";
$resultado = $varoct1 + $varoct2 + $varoct3 + $varoct4;
echo $resultado;
?>

--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: 
<http://listas.jovenclub.cu/pipermail/gutl-l/attachments/20140528/75eff163/attachment.html>
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a