• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Administracion de IP's en una red wireless via web (PHP)

    Programado Fijo Cerrado Movido
    Software
    3
    16
    1.2k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • marcaljM
      marcalj
      Última edición por

      Buenas esto es el proyecto que llevo en manos i que dara a luz proximamente (espero :risitas:). Este verano me he empeñado a aprender a programar en PHP, MySQL i no se que leches mas 😛 i para practicar es muy divertido, almenos para mi lo es 😛 jeje.

      El tema es que no se si he hecho bien el planteamiento de las tablas de la db i tal…en principio la "web" es para la asociacion de mi pueblo (RibesWireless) pero quiero hacerlo generico, con instalacion i todo...

      Los lenguajes utilizados son PHP, MySQL y HTML :p. Esta en fase ultra-alpha release :p, repito k esto es para practicar en PHP, ya que acabo de aprender en ello.

      Tablas:

      ip: guarda en 4 columnas las 4 posiciones de la ip, tambien el tipo, el propietario i una descripcion.

      mysql> select * from ip where id =1 or id=2;
      +----+------+------+------+------+----------+---------------+---------------+
      | id | ip_1 | ip_2 | ip_3 | ip_4 | ip_tipus | ip_propietari | ip_descripcio |
      +----+------+------+------+------+----------+---------------+---------------+
      |  1 |   10 |   34 |    1 |    0 |        3 |             2 | NULL          |
      |  2 |   10 |   34 |    1 |    1 |        3 |             2 | AP RW01       |
      +----+------+------+------+------+----------+---------------+---------------+
      2 rows in set (0.00 sec)
      

      propietari: guarda el nombre del propietario, la id corresponde a la posicion "ip_propietari" de la tabla IP.

      mysql> select * from propietari;
      +---------------+---------------+
      | propietari_id | nom           |
      +---------------+---------------+
      |             1 | Lliure        |
      |             2 | RibesWireless |
      |             3 | marcalj       |
      +---------------+---------------+
      2 rows in set (0.00 sec)
      

      rangs: guarda el numero de la posicion 3 de una ip, lo he denominado rango, para saber luego cuantos rangos hay configurados. La id corresponde a la posicion "ip_3" de la tabla IP.

      mysql> select * from rangs;
      +----------+------+
      | rangs_id | rang |
      +----------+------+
      |        1 |  216 |
      |        2 |  217 |
      |        3 |  218 |
      |        4 |  219 |
      +----------+------+
      4 rows in set (0.00 sec)
      

      tipus: guarda el tipo de IP, la id corresponde a la posicion "ip_tipus" de la tabla IP.

      mysql> select * from tipus;
      +----------+---------------+
      | tipus_id | descripcio    |
      +----------+---------------+
      |        1 | Lliure        |
      |        2 | Reservada     |
      |        3 | Administracio |
      |        4 | Error         |
      +----------+---------------+
      4 rows in set (0.00 sec)
      

      Para crear las tablas he usado un archivo *.sql i para llenar un archivo php de prueba, para luego que el mismo asistente de instalacion te lo pueda crear. i luego hay un archivo php principal con todo. AQUI teneis los archivos. Para ver lo que hace la web "ips.php" podeis verla AQUI. tarda un poco, ya sabreis pq 🙂 jeje. Tendre k optimizar el proceso por eso…k si no... xD

      Bueno a ver que os parece.

      Estoy abierto a cualquier ayuda e comentario. Ojala esto le sirva para alguien que tambien este aprendiendo 🙂

      Salu2!

      1 Respuesta Última respuesta Responder Citar 0
      • KrHonHoSK
        KrHonHoS
        Última edición por

        BIen, esta bien, veo q vas aprendiendo "pequeño saltamontes" :risitas: :risitas: pero te voy a puntualizar 2 cosas. Primero. La tabla de ips esta mal, a mi entender. Deberias tener solo 6 campos.
        ID: INT(11)
        IP: Tinytext
        Mascara: Tinytext
        ip_tipo:
        ip_propietari:
        ip_descripcio:

        Mas q nada pq al ser redes disintas cada una llevara una mascara o si son de la misma lo tienes preparado para futuras ampliaciones. Igual tmb deberias añadir un campo q fuese la direccion MAC, eso tu mismo.

        La segunda puntualizacion es mas simple. Entiendo lo q haces, como lo haces, pero no entiendo para q. Q utlidad tiene?? seguro q tendra alguna pq sino te hubieras puesto a hacer el tipico ejercicio de notas y alumnos 😄

        SalU2

        KrHonHoS

        P.D. Tome nota de lo q me dijiste de los favoritos y ya lo he echo. Cuando ponga todo lo veras funcionando perfecto;) Espero q no haga falta recordarte q si necesitas algo de php o de C o de mysql o de algo q este en mis manos, lo digas.

        1 Respuesta Última respuesta Responder Citar 0
        • marcaljM
          marcalj
          Última edición por

          Gracias por la ayuda KrHonHoS, pues la utilidad es esta:

          En mi pueblo tenemos montada una red wireless (a lo grande, pilla varios municipios), nos pusimos en contacto con RedLibre para que nos dieran IP's a nosotros (para k toda spain, en el caso que estubiera toda conectada via wireless, no hubieran problemas de ip's) i bueno, pues la administracion la llevo yo, me mandan mails diciendo k alguien ha entrado en la red i k kiere X ip's, yo se las asigno i le devuelvo el mail con las direcciones, lo tengo en una hoja de excel i lo modifico a mano.

          La aplicacion es que desde esa web tu puedas ver kien tiene esa ip (por si pasa algo, lo de la direccion MAC estaria muy bien tambien) i si kieres mas ips o kieras hacer un cambio puedas hacerlo. En principio lo podran modificar un par de personas, yo i otro. Esta es la idea.

          Otra cosa, hay alguna explicacion del pq no es mejor poner la ip en 4 campos k en uno?? solo por curiosidad.

          Lo de la mascara no me parece util (crear un campo para ella), la mascara es para definir k rangos de ips kieres ver en tu pc…por ejemplo la k hay puesta en la web (255.255.252.0) corresponde a los 4 rangos de ip's k tenemos... Pero bueno... lo apunto xD

          Por el tema de optimizacion....como ves tu la posibilidad de reducir consultas a la db?? eske cada vez k carga hace unas 1200 consultas minimo...i alenta un poco la cosa...

          Lo dicho...Gracias! 😉

          1 Respuesta Última respuesta Responder Citar 0
          • KrHonHoSK
            KrHonHoS
            Última edición por

            A ver, lo de mejor un campo q 4, por una razon bastante simple, estas repitiendo 2 constantemente, luego si los vas a repetir o los kitas o usas un solo campo, ademas la consulta es mas rapida (no es lo mismo pedir un campo q 4). El manejo es mas rapido, si tienes q buscar una ip en concreto, tendrias q ir preguntando, uniendo los campos,… amos, no se pero yo haria eso. Y para q la consulta sea mas rapida pos... pediria solo los campos q voy a mostrar, haria una buskeda por rango en paginas separadas, haria solo un select (espero q hagas un select y despues un fetch_row, pq si haces un select por id....:rolleyes: )

            Nu se, habria q ver algo el codigo para kitar lineas.

            SalU2

            KrHonHoS

            P.D. no me he mirao el codigo pq no e tenio tiempo. A ver si esta tarde :rolleyes:

            Editado:
            Si lo kieres hacer algo ams kuko, kita el id de la tabla ips y usa la ip como el id, pq al ser unica y no poder repetirse…. tmb puedes usar un numero para definirla (ej. 010024015002, q al leerlo le pones los puntos de 3 en 3 y tendrias 010.024.015.002 luego le kitas los 0 o al meterlo en variables de tipo int ya se te kita y listo 😉

            1 Respuesta Última respuesta Responder Citar 0
            • marcaljM
              marcalj
              Última edición por

              utilizo el fetch_array, mas k nada pq es el que me ha dicoh un colega xD

              Utilizar la ip como id…pero entonces la ip siguendo como un solo campo? o lo dejo en 4?? mejor en uno como tu dices, no?

              Cuando veas el codigo ya me castigaras demasiado....toy preparandome para recibir la paliza maestro xD xD :risitas: jeje

              Pos eso cuando lo veas me dices que cambio i asi lo hago bien de una vez :rolleyes: jeje.

              Primero que la db este bien estructurada...luego ya se vera el tema proteccion para k nadie pueda borrar las cosas i tal, etc.

              Salu2!

              1 Respuesta Última respuesta Responder Citar 0
              • KrHonHoSK
                KrHonHoS
                Última edición por

                Toy mirando el codigo y te voy a poner una pega, si lo corriges ganaras mucho tiempo de buskeda. Cada vez q listas una ip, (miremos solo el caso de una), consultas la tabla ip 3 veces. Seria mas facil y rapido si la consultases solo una.

                Si en lugar de hacer:

                $result = mysql_query("select ip_tipus from ip where ip_4 = $x AND ip_1 = $ip_1 AND ip_2 = $ip_2 AND ip_3 = $ip_3",$link);
                $result = mysql_query("select ip_propietari from ip where ip_4 = $x AND ip_1 = $ip_1 AND ip_2 = $ip_2 AND ip_3 = $ip_3",$link);
                $result = mysql_query("select ip_descripcio from ip where ip_4 = $x AND ip_1 = $ip_1 AND ip_2 = $ip_2 AND ip_3 = $ip_3",$link);
                

                hicieras

                $result = mysql_query ("select * from ip where ip_4 = $x AND ip_1 = $ip_1 AND ip_2 = $ip_2 AND ip_3 = $ip_3",$link);
                ```ya tendrias todos los datos buscados y solo harias una consulta no 3.
                
                Prueba a modificar eso y me cuentas si se reduce el tiempo o no.
                
                Cuando tenga un ratin mas, te lo miro con mas calma para depurarlo mas.
                1 Respuesta Última respuesta Responder Citar 0
                • marcaljM
                  marcalj
                  Última edición por

                  Ok ahora xungo, me piro 4 dias fuera, el lunes llegare, ya te dire algo, vale?

                  Gracias tio!

                  1 Respuesta Última respuesta Responder Citar 0
                  • craftonC
                    crafton
                    Última edición por

                    Pos eso… q eres un fenomeno primo, siempre llevas algun preoyecto q otro entre manos.
                    A ver ahora cuando aprenda "algo" de programación si te ayudo, me interesa el tema... pues estamos montando una red wireless por aqui, y vamos, soi yo el q está llevando el cotarro... saludos marcalj!!

                    1 Respuesta Última respuesta Responder Citar 0
                    • marcaljM
                      marcalj
                      Última edición por

                      jeje gracias tiu! xD

                      Pa lo de la wireless cuenta conmigo para lo que sea (que sepa yo :p) jeje.

                      Respecto al tema inicial:

                      La tabla "ip" quedara con la ip en un solo campo, i el nombre directamente en ella para agilitar el tema i no hacer mas consultas.

                      Se hara una sola consulta por cada fila de ips en la web.

                      I bueno mas cosas….luego pongo otra vez el codigo actualizado.

                      Salu2! i gracias por la ayuda i comentarios 😉

                      1 Respuesta Última respuesta Responder Citar 0
                      • marcaljM
                        marcalj
                        Última edición por

                        Buenas, me he vuelto a poner en ello, creo que esta vez progresamos satisfactoriamente…

                        Tengo dos dudas:

                        1.- El campo nombre no se si dejarlo tal como esta (una tabla a parte) o ponerlo todo el la tabla ip.
                        2.- Esta funcion k tal la veis?

                        El objetivo es que en la variable $c queden los 3 ultimos digitos de la variable $a.

                        Ahora k se me ocurre…i si el rango solo tiene 2 caracteres? grrr, joder, tendre k remodelarla...

                        Salu2!

                        EDITADO: Nueva funcion:

                        :sisi:

                        1 Respuesta Última respuesta Responder Citar 0
                        • marcaljM
                          marcalj
                          Última edición por

                          Buenas, ya he acabado de optimizar el codigo con los cambios que me comento KrHonHos :sisi:

                          Se ha reducido considerablemente el tiempo de ejecucion :sisi:

                          Salu2!

                          1 Respuesta Última respuesta Responder Citar 0
                          • KrHonHoSK
                            KrHonHoS
                            Última edición por

                            No es por joderte el codigo, pero hay una funcion en php q hace eso 😛
                            la bola seria poner algo asin:

                            $a="10.34.216";
                            ereg ("([0-9]{1,2,3}).([0-9]{1,2,3}).([0-9]{1,2,3}).([0-9]{1,2,3})", $a, $b);
                            echo $b[1].".".$b[2].".".$b[3].".".$b[4];
                            
                            

                            Eso en principio sera la bola. No lo e probado, pero mas o menos seria asi. Igual me e comido algun punto o algo, pero pruebalo q igual con eso reduces otro webo de lineas 😉

                            Ya me contaras

                            KrHonHoS

                            1 Respuesta Última respuesta Responder Citar 0
                            • marcaljM
                              marcalj
                              Última edición por

                              Graciaaaa!! merci tio!!

                              Aunke has hecho un fallo…jeje```
                              $a="10.34.216";
                              ereg ("([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})", $a, $b);
                              echo $b[3];

                              
                              PD: yo lo que quiero tener en la variable es "216" nada mas, no toda la ip, es simplemente para saber el rango.
                              
                              Muchas gracias.
                              1 Respuesta Última respuesta Responder Citar 0
                              • marcaljM
                                marcalj
                                Última edición por

                                Bueeeeno, hoy tambien me he puesto en ello:

                                Podreis observar un cambio de aspecto i mas rapideza.

                                Codigo nuevo: AQUI
                                web: AQUI

                                He hecho un menu de adminstracion, en otro archivo por eso, aun esta sin terminar. Como todo igualmente, jeje.

                                Salu2!

                                1 Respuesta Última respuesta Responder Citar 0
                                • KrHonHoSK
                                  KrHonHoS
                                  Última edición por

                                  😮 O_o si me a puesto como colaborador…. 😮

                                  xD Ta bien, pero la parte de la izda se me monta echale un ojo q me parece q lo has echo para una resolucion un pelin alta.

                                  Por cierto, sigo pensando q deberias hacerlo por paginas, de 40 en 40 o algo asin, pa q no sea mu pesao de mover.

                                  d1

                                  KrHonHoS

                                  P.D: Ya veras como al final entre el eduard y tu termino hablando catalan xD

                                  1 Respuesta Última respuesta Responder Citar 0
                                  • marcaljM
                                    marcalj
                                    Última edición por

                                    Resucito esta pagina para deciros que me he vuelto a poner con el tema, ya casi esta lista la version estable con lo minimo para trabajar con ella.

                                    Vosotros que version le pondriais? v0.1 o v1.0, no lo se, con que criterio se ponen los numeritos de las versiones 😛

                                    Membris Khan me ayudara con la visualizacion de la web, o sea, que sea bonito jeje, que yo ni pajotera idea vamos, soy un negado en estas cosas…

                                    El tiempo de ejecucion le he rebajado considerablemente respecto a la version anterior, un punto a favor xD

                                    El nombre del "programa" creo que se llamará "xLAN IPv4 web manager". Tampoco tengo una idea muy clara, pero bueno, tiene buena pinta no? xD

                                    Os colgaria el codigo pero me kiero esperar un poco a que esten unos apartados listos. Creo que la db no la tocare ya (espero). Aun me falta hacer el asistente de instalacion e desinstalacion...

                                    Tambien poner lo de la licencia GNU/GPL en cada archivo i tal...

                                    Estara disponible en todos los idiomas posibles, simplemente necesitaria alguien que me traduciera los textos en cada idioma.

                                    Bueno, de momento podeis ver la parte visual en http://marcalj.net/RibesWireless/ips.php como siempre.

                                    La parte de administracion tengo que hacerla con cookies, pq sino es un lio. Estilo PHP-Nuke.

                                    Bueno, pronto tendreis noticias frescas xD

                                    Salu2!

                                    1 Respuesta Última respuesta Responder Citar 0
                                    • 1 / 1
                                    • First post
                                      Last post

                                    Foreros conectados [Conectados hoy]

                                    1 usuarios activos (0 miembros e 1 invitados).
                                    febesin, pAtO,

                                    Estadísticas de Hardlimit

                                    Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                                    Somos un total de 34.7k miembros registrados.
                                    ssaybb ha sido nuestro último fichaje.