base de datos para ip

bueno chicos hace tiempo que no comento en el foro pero ahora regreso solo para pedirles su ayuda.

el titulo no explica mucho pero déjeme ser mas explicito. Lo que sucede es que estoy generando para mi universidad un sistema el cual registre todas las ips que están disponibles y las que se encuentran utilizadas divididas por departamentos.

el sistema esta progresando como se esperaba excepto por el modulo para guardar las ip utilizadas. dichas ips van por rangos y el formulario de envió debe ser capas de reconocer a que rango pertenecen dichas ip (osea si el edificio de aulas tiene rango 120.1.0.111 a 120.1.0.211, se asegure que la ip ingresada este en ese rango)

de verdad ya se me acabaron las ideas, no es posible crear una base de datos con todas ips debidos a que los rangos son dinámico y algunas veces asta se amplían y a aciertos departamentos se le asignas nuevos rangos.

chicos se que es algo complicado (o eso creo) pero de verdad ya no se me ocurre nada.

PD: solo es una pase de datos el sistema no modifica nada excepto la bd.
A ver si me he enterado... Hay un rango de IP's (ej: 120.1.0.111 - 120.1.0.211) y quieren que un formulario se envíe solo si pertenece a este rango.

Si es eso prueba usando cosas como preg_split(); del PHP sea el código que sea que uses. Ve comparando los números de izquierda a derecha viendo si no se salen ;)
amm no entiendo como puedo usar esa función si mal no la conozco sirve para ver si se encuentran ciertos caracteres dentro de un texto, pero en este caso como podría estructurarla para que me reconozca no solo datos si no rangos :s esa seria mi duda con esta función

PD: hola karakulo como tas xD
Bien, como te interesa el preg_split() supongo que lo está haciendo en PHP... Lo que hace la función es que te crea un array partiendo de un elemento indicado.
Tú debes tener algo como esto:
$ip[0] = preg_split('/./', '120.1.0.176'); //IP usuario
$ip[1] = preg_split('/./', $resultIPminima);
$ip[2] = preg_split('/./', $resultIPmaxima);

Con eso tienes algo cómo:
Array (
[0] => array (
[0] = 120
[1] = 1
[2] = 0
[3] = 176
),
[1] => array (
[0] = 120
[1] = 1
[2] = 0
[3] = 111
),
[2] => array (
[0] = 120
[1] = 1
[2] = 0
[3] = 211
)
)

Simplemente después vas viendo if ($ip[0][0] >= $ip[1][0] && $ip[0][0] <= $ip[2][0] ...)
hoooooooooooo okas ya lo e entendido.
Se aprenden cosas nuevas cada día xD no savia que esa función hiciera tal cosa en fin arigato karakulo

PD: ya ni me saludas T_T (claro como ya sabes mas que yo de php ya ni me saludas T_T)
codomodragon escribió:PD: ya ni me saludas T_T (claro como ya sabes mas que yo de php ya ni me saludas T_T)

Me estaba yendo de vacaciones y eso... xD Ahi si hola dragoncita ;P
oie men no funciona el preg_split, tengo en los codigos esto
  $departamento = $_GET['departamento'];
  $edificio = $_GET['edificio'];
  $seccion = $_GET['seccion'];
  $piso = $_GET['piso'];
  $oficina = $_GET['oficina'];
  $ip = $_POST['ip'];
  $rangos=mysql_query("select resultIPminima,resultIPmaxima from rangos where departamento='$departamento' and edificio='$edificio' and seccion='$seccion' and piso='$piso' and oficina='$oficina'",$link) or die (mysql_error());
  while($row = mysql_fetch_array($rangos)){
    $ip[0] = preg_split('/./', '120.1.0.2');
    $ip[1] = preg_split('/./', $row['resultIPminima']);
    $ip[2] = preg_split('/./', $row['resultIPmaxima']);
  }
  if ( $ip[0][3] >= $ip[1][3] && $ip[0][0] <= $ip[2][3] ){
    echo'paso';
  }
  else{
    echo'no paso';
  }

me lansa los siguientes errores

Notice: Array to string conversion in E:\wamp\www\formulario.php on line 68
Notice: Array to string conversion in E:\wamp\www\formulario.php on line 69
Notice: Array to string conversion in E:\wamp\www\formulario.php on line 70
Fatal error: Cannot use string offset as an array in E:\wamp\www\formulario.php on line 73

no se si es que escribi algo mal, no se usar la función o mi version de php no la soporta >_<
de verdad lla me estrese con este trabajo nunca me avia liado tanto nada en php >_<
Error mío. No puse contrabarra (\). Es $ip[0] = preg_split("/\./", "120.1.0.2");

Otra cosa es que no se que línea es cual (en el error). Si no se soluciona con esto, numera las líneas.