Determinar si una IP está dentro de un rango

Lo primero, dar las gracias a Paul Gregg y a su entrada entrada PHP algorithms: Determining if an IP is within a specific range que si no tenéis problemas con el inglés, os recomiendo encarecidamente que la leáis porque todo lo que os voy a contar viene muchísimo mejor explicado y documentado.

Hasta ahora no me he encontrado con la necesidad de filtrar una IP entre un listado de rangos muy amplios y cada uno especificado de formas distintas. Estuve volviéndome loco buscando por varios foros en los que partían una IP en trozos luego la rellenaban con ceros y luego la intentaban transformar… vamos una chapuza.

La solución me la dio Paul, una IP se puede pasar de decimal a binario 32bit (impresionante una sola línea de código substituye a varias decenas):

Y ahora el siguiente problema, comparar nuestra IP con un array de rangos representados de distinta forma:

 

Si te ha resultado útil, ¡Compartelo!Share on LinkedIn
Linkedin
Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
Share on Reddit
Reddit
Email this to someone
email

Comments are closed.