InicioHazlo Tu MismoCómo crear un identificador de teléfonos móviles

Cómo crear un identificador de teléfonos móviles

Hazlo Tu Mismo6/12/2010

(para chile)

Implementos necesarios:

* Un servidor Web que ejecute archivos PHP y un sistema de gestión de bases de datos MySQL (Recomendamos XAMPP ).
* La base de numeración telefónica móvil publicada por la Subtel. Pueden descargarla en formato PDF desde el siguiente enlace .
* Un editor para la codificación (Recomendamos Notepad++ ).

Notas sobre el proceso:

Probablemente en este punto se preguntarán: ¿Cómo funciona esto? Bastante sencillo. La Subsecretaría de Telecomunicaciones en Chile define una serie de prefijos los cuales son asignados en rangos a las distintas compañías que entregan servicios de telefonía móvil. Estos prefijos están compuestos por 4 dígitos y van desde el 6200 hasta el 9999.

Ahora, ¿qué tienen que ver estos prefijos? Son ellos los que forman la primera mitad de nuestros números de teléfonos móviles. En consecuencia, cada prefijo tiene 4 dígitos más que forman un número único completo. Si nuestras matemáticas no fallan, podemos deducir que eso significa que existe un total de 9999 números de teléfonos móviles únicos por cada prefijo. Considerando que son 3799 prefijos en total, en Chile tenemos 37.986.201 posibles combinaciones de números.

¿Eso significa que eventualmente habrán 37 millones de celulares dando vuelta en el país?. Puede ser, pero de momento no, ya que como podrán fijarse en la base de numeración, hay prefijos asignados a compañías que actualmente no ofrecen servicios de telefonía móvil de libre acceso al público general… pero nunca se sabe. Adicionalmente, hay algunos rangos de prefijos que no están asignados, lo que deja un total 2620 prefijos y por ende 26.197.380 combinaciones. Pero eso es un dato anecdótico más que nada.

Con esa información, ya tenemos la lógica clara para realizar nuestra aplicación, así que manos a la obra.

Procedimiento:

1.- Lo primero que debemos hacer, y que es el paso más crítico, es transformar la base de numeración telefónica a un formato adecuado, ya que la que descargamos esta en formato PDF y no podremos acceder a ella de forma normal, así que nuestro objetivo es traspasarla a nuestra base de datos MySQL con el fin de poder consultarla mediante el script que desarrollaremos.

Para esto tenemos varias opciones:

* Podemos copiar el contenido de la base y traspasarlo a una planilla Excel, en la cual debemos eliminar las XXXX que aparecen en el campo suscriptor y solo mantener el prefijo y en otra columna la compañía a la que pertenece ese prefijo. Adicionalmente, es bueno que al menos para las tres compañías más conocidas, cambiemos sus nombres completos o razones sociales a nombres más amigables y reconocibles para el usuario (por ej. ENTEL PCS TELECOMUNICACIONES S.A. a ENTEL PCS).
* Una vez que tenemos nuestro Excel armado con el formato que queremos, lo traspasamos a MySQL. ¿Dudas sobre como hacerlo? No se preocupen, en el pasado hemos hecho un tutorial que cubre el proceso de forma completa.

Pero, equipo de CLH, este proceso es largo y tedioso, ¿pueden echarnos una mano por favor?. Bueno, bueno, pero solo porque lo pidieron por favor. Si hacen click en este enlace, pueden descargar la base de datos completa lista para importar a MySQL. Pero no le cuenten a nadie, ¿ya?.

El archivo que les dejamos es un fiel reflejo de la base de datos que creamos, llamada moviles, la cual tiene una tabla llamada numeracion. Esta a su vez tiene 2 campos: prefijo (INT) y empresa (TEXT). Más sencillo imposible.

2.- Ahora que hemos ordenado nuestros datos, podemos empezar a codificar lo que será nuestra pequeña aplicación. Para empezar, haremos un formulario el cual contendrá un campo de texto para que el usuario ingrese el número de teléfono móvil a consultar y un botón para enviar la consulta. Para esto, crearemos un archivo en formato PHP, llamado consulta.php, el cual contendrá además de lo anterior, un autollamado donde se ejecutará el script y consultaremos la base de datos. Pero primero, el formulario:

1. <div id="formulario">
2. <form name="formulario-consulta" id="formulario-consulta" action="consulta.php" method="post">
3. <label for="numero">Ingrese el n&uacute;mero a consultar:</label>
4. <input type="text" name="numero" id="numero" />
5. <p><input type="submit" id="submit" name="submit"
6. value="Consultar n&uacute;mero" />
7. </form>
8. </div>


3.- Luego de codificar nuestro formulario, procedemos a hacer el código PHP, el cual validará el número ingresado y luego hará cortará los primeros 4 caracteres de la cadena ingresada (para igualarlo al prefijo), hará la consulta en la base de datos y desplegará el resultado de acuerdo a lo que se obtenga:
texto planocopiar codigoimprimir?

1. if($_POST) {
2.
3. if($_POST['numero'] == '') {
4.
5. $mensaje = "<span id='error'>Debe ingresar un n&uacute;mero para
6. consultar.</span>";
7.
8. }
9. else {
10.
11. if(!$conexion = mysqli_connect("localhost", "usuario", "clave", "bd" )) {
12.
13. $mensaje = "<span id='error'>No se pudo conectar
14. a la base de datos.</span>";
15.
16. }
17. else {
18.
19. $numero = substr(trim($_POST['numero']), 0, 4);
20.
21. $consulta = "SELECT empresa FROM numeracion WHERE prefijo = ".$numero;
22.
23. if($resultado = mysqli_query($conexion, $consulta)) {
24.
25. if(mysqli_num_rows($resultado) == 0) {
26.
27. $mensaje = "<span id='error'>No hay coincidencias para el
28. n&uacute;mero ".$_POST['numero'].".</span>";
29.
30. }
31. else {
32.
33. $datos = mysqli_fetch_array($resultado, MYSQL_ASSOC);
34.
35. $mensaje = "<span id='exito'>El n&uacute;mero ".$_POST['numero']."
36. pertenece a ".$datos['empresa']."</span>";
37.
38. }
39.
40. }
41. else {
42.
43. $mensaje = "<span id='error'>Ocurri&oacute; un error al ejecutar
44. la consulta. Int&eacute;ntelo nuevamente.</span>";
45.
46. }
47.
48. }
49.
50. }
51.
52. }

4.- El código en si es bastante autoexplicativo. Comprobamos primero si se enviaron datos, conectamos a la base de datos y ejecutamos la consulta. En cada paso creamos una variable llamada mensaje, la cual almacena información correspondiente al resultado de la operación. Este mensaje lo añadiremos al final del formulario para que le informe al usuario que sucedió:
texto planocopiar codigoimprimir?

1. <div id="mensaje"><?php
2.
3. if(isset($mensaje)) {
4.
5. echo $mensaje;
6.
7. }
8.
9. ?></div>


5.- De forma opcional, si así lo deseamos, podemos estilizar un poco esta pequeña aplicación, creando un archivo estilos.css y añadiéndolo a la cabecera de consulta.php:
texto planocopiar codigoimprimir?

1. #formulario {
2.
3. width: 450px;
4. margin: 0 auto;
5. font-family: Arial;
6. font-size: 11px;
7. border: solid 1px black;
8. padding: 20px;
9. background-color: #fac519;
10.
11. }
12.
13. #formulario-consulta {
14.
15. margin-left: 150px;
16.
17. }
18.
19. #submit {
20.
21. font-family: inherit;
22. font-size: 11px;
23.
24. }
25.
26. label {
27. display: block;
28. }
29.
30. #mensaje {
31.
32. font-family: Arial;
33. font-size: 11px;
34. padding: 3px;
35. border: 1px dashed black;
36.
37. }
38.
39. #exito {
40.
41. background-color: #6ad11b;
42.
43. }
44.
45. #error {
46.
47. background-color: #f51414;
48.
49. }

6.- Finalmente, nuestro consulta.php quedaría de la siguiente forma:
texto planocopiar codigoimprimir?

1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2. <html>
3. <head>
4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5. <link rel="stylesheet" href="estilos.css" />
6. <title>Identificador de tel&eacute;fonos m&oacute;viles</title>
7. </head>
8. <body>
9. <?php
10. if($_POST) {
11.
12. if(emptyempty($_POST['numero'])) {
13.
14. $mensaje = "<span id='error'>Debe ingresar un n&uacute;mero para consultar.</span>";
15.
16. }
17. else {
18.
19. if(!$conexion = mysqli_connect("localhost", "root", "dumbass", "movil" )){
20.
21. $mensaje = "<span id='error'>No se pudo conectar a la base de datos.</span>";
22.
23. }
24. else {
25.
26. $numero = substr(trim($_POST['numero']), 0, 4);
27.
28. $consulta = "SELECT empresa FROM numeracion WHERE prefijo = ".$numero;
29.
30. if($resultado = mysqli_query($conexion, $consulta)) {
31.
32. if(mysqli_num_rows($resultado) == 0) {
33.
34. $mensaje = "<span id='error'>No hay coincidencias para el n&uacute;mero ".$_POST['numero'].".</span>";
35.
36. }
37. else {
38.
39. $datos = mysqli_fetch_array($resultado, MYSQL_ASSOC);
40.
41. $mensaje = "<span id='exito'>El n&uacute;mero ".$_POST['numero']." pertenece a ".$datos['empresa']."</span>";
42.
43. }
44.
45. }
46. else {
47.
48. $mensaje = "<span id='error'>Ocurri&oacute; un error al ejecutar la consulta. Int&eacute;ntelo nuevamente.</span>";
49.
50. }
51.
52. }
53.
54. }
55.
56. }
57. ?>
58. <div id="formulario">
59. <form name="formulario-consulta" id="formulario-consulta" action="consulta.php" method="post">
60. <label for="numero">Ingrese el n&uacute;mero a consultar:</label>
61. <input type="text" name="numero" id="numero" />
62. <p><input type="submit" id="submit" name="submit" value="Consultar n&uacute;mero" />
63. </form>
64. <div id="mensaje"><?php
65.
66. if(isset($mensaje)) {
67.
68. echo $mensaje;
69.
70. }
71.
72. ?></div>
73. </div>
74.
75. </body>
76. </html>


Probamos y todo debiese funcionar sin problemas.

Y así de simple tenemos un identificador de números móviles para cuando lo necesitemos. Si nos fijamos, el proceso es bastante simple de implementar, por lo que los incentivamos a animarse, en solo minutos tendrán una muy útil aplicación para compartir.

Notas antes del cierre:

1.- Para nuestros amigos de fuera del país, lamentablemente este proceso sirve para Chile. Sin embargo, nos imaginamos que afuera debe ser bastante similar, por lo que los invitamos a compartir sus experiencias con otros usuarios.

Antes de terminar:








Como lo hago
Datos archivados del Taringa! original
1puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
alfrex234🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.