Mas Tutoriales Sitio en donde podrás conocer resolver tus dudas acerca de tecnología. https://masttl.com/component/tags/tag/python 2024-05-05T08:09:20+00:00 MasTTL Joomla! - Open Source Content Management Redes Inalámbricas en la Autopista Puebla - Chiapas 2018-07-08T05:15:18+00:00 2018-07-08T05:15:18+00:00 https://masttl.com/articulos/experiencias/9-redes-inalambricas-en-la-autopista-puebla-chiapas David Fragoso Porras <p style="text-align: justify;">Recientemente tuve la oportunidad de realizar un viaje al hermoso estado de Chiapas, como algunos sabrán vivo en el estado de Puebla, días antes de realizar mi viaje, vino a mi mente la idea de realizar un poco de Wardriving (para muchos de ustedes este concepto es completamente extraño a menos que sea un geak), el cual en términos simples consiste en realizar las búsqueda de redes inalámbricas mientras se viaja en un vehículo, en mi caso hice una pequeña variación que se le conoce como bus_wardriving, en donde el vehículo usado para desplazarse es un autobús. El dispositivo que decidí para capturar la información fue mi teléfono celular un Moto G6 Play, esto debido a que mi estancia en Chiapas iba a ser muy corta (día y medio), además no me apetecía llevar conmigo mi laptop y llamar la atención en sobremanera (imagina un tipo con su laptop encendida a las 3 am y con una antena WiFi externa), en mi smartphone programe un pequeño script en Python que me permitía almacenar la información que considere más relevante de cada red que detectaba (nombre o SSID, encriptación, canal y dirección MAC) y posteriormente almacenarlo en un fichero CSV.</p> <p style="text-align: justify;">Después de regresar del viaje, procedí a analizar la información, para ello cargue el fichero CSV en una base de datos relacional, en este caso MySQL, en donde en primer lugar procedí a eliminar las redes repetidas, por ejemplo, en el autobús que viaja contaba con servicio de WiFi a bordo, por lo tanto, esta red la detecte en más de una ocasión, para eliminar hacer este filtrado, ignore los registros en donde se repitiera la dirección MAC.</p> <p style="text-align: justify;">El primer análisis que realice fue conocer el tipo de seguridad que tienen las redes que detecte, dándome los siguientes resultados.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica1.svg" alt="Image description." width="600" /></p> <p style="text-align: justify;">En donde 196 redes no tienen ningún protocolo de seguridad, 55 cuentan con el protocolo WEP, 70 cuentan solamente con el protocolo WPA, 1257 cuentan solamente con el protocolo WPA2 y finalmente 984 cuenta con los protocolos WPA y WPA2 simultáneamente. Para todos aquellos que se preguntan porque una red inalámbrica cuenta con dos protocolos de seguridad al mismo tiempo, esto se debe principalmente con problemas de compatibilidad con dispositivos antiguos (aproximadamente 10 años o más) que no son compatibles con el protocolo WPA2, un ejemplo es mi PSP 3000 que solo se puede conectar a redes WEP o WPA, de este modo permitimos que cualquier dispositivo que cuente con una tarjeta de red, se pueda conectar sin importar su antigüedad.</p> <p style="text-align: justify;">A continuación, mostramos una gráfica que nos permite ver cuántas veces se ha usado cada uno de los canales disponibles de comunicación para redes inalámbricas, en donde los más usados son los canales 1 (2412 MHz), 6 (2437 MHz) y 11 (2462 MHz).</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica4.png" width="600" height="400" /></p> <p> El siguiente análisis que genere consiste en conocer quiénes son los principales fabricantes de los Access Point, en donde se obtuvieron los siguientes resultados.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica2.svg" width="600" height="207" /></p> <p style="text-align: justify;">Los dos primeros fabricantes Huawei Technologies Co.,Ltd y Arcadyan Corporation son ampliamente conocidos por ser proveedores de Access Point para Telmex (el proveedor de telefonía e internet más grande de México), el tercer fabricante TP-Link Technologies Co.,Ltd. se caracteriza por ofrecer Access Point a precios competitivos empezando en los $20 dólares americanos,  y finalmente ARRIS Group, Inc. es uno de los proveedores de Access Point para Megacable (proveedor de telefonía, internet y televisión por cable).</p> <p style="text-align: justify;">El siguiente análisis que se genero fue gracias a que se empleó Minería de Datos, para ello, el objetivo es saber cuáles son las palabras más comunes en el nombre de una red inalámbrica para ello se hizo uso de Python y las librerías de NLTK y WordCloud, de este modo el resultado obtenido fue una nube de palabras, en donde entre más grande sea una palabra, más veces esta se detectó.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica3.png" width="600" height="450" /></p> <p style="text-align: justify;">Esto confirma la hipótesis que habíamos descrito en el punto anterior, en donde es Telmex (la palabra que identifica las Access Point de esta empresa es INFINITUM) uno de los principales proveedores de servicios de Internet, seguido de Megacable (la palabra que identifica las Access Point de esta empresa es ARRIS).</p> <p style="text-align: justify;">Como conclusión podemos decir que el realizar Wardriving, o en este caso Bus_Wardriving nos permite obtener una gran cantidad de información con respecto a las redes inalámbricas que nos rodean, para posteriormente poder analizar esta información para generar nuevo conocimiento o confirmar una hipótesis que tengamos.</p> <p style="text-align: justify;">Recientemente tuve la oportunidad de realizar un viaje al hermoso estado de Chiapas, como algunos sabrán vivo en el estado de Puebla, días antes de realizar mi viaje, vino a mi mente la idea de realizar un poco de Wardriving (para muchos de ustedes este concepto es completamente extraño a menos que sea un geak), el cual en términos simples consiste en realizar las búsqueda de redes inalámbricas mientras se viaja en un vehículo, en mi caso hice una pequeña variación que se le conoce como bus_wardriving, en donde el vehículo usado para desplazarse es un autobús. El dispositivo que decidí para capturar la información fue mi teléfono celular un Moto G6 Play, esto debido a que mi estancia en Chiapas iba a ser muy corta (día y medio), además no me apetecía llevar conmigo mi laptop y llamar la atención en sobremanera (imagina un tipo con su laptop encendida a las 3 am y con una antena WiFi externa), en mi smartphone programe un pequeño script en Python que me permitía almacenar la información que considere más relevante de cada red que detectaba (nombre o SSID, encriptación, canal y dirección MAC) y posteriormente almacenarlo en un fichero CSV.</p> <p style="text-align: justify;">Después de regresar del viaje, procedí a analizar la información, para ello cargue el fichero CSV en una base de datos relacional, en este caso MySQL, en donde en primer lugar procedí a eliminar las redes repetidas, por ejemplo, en el autobús que viaja contaba con servicio de WiFi a bordo, por lo tanto, esta red la detecte en más de una ocasión, para eliminar hacer este filtrado, ignore los registros en donde se repitiera la dirección MAC.</p> <p style="text-align: justify;">El primer análisis que realice fue conocer el tipo de seguridad que tienen las redes que detecte, dándome los siguientes resultados.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica1.svg" alt="Image description." width="600" /></p> <p style="text-align: justify;">En donde 196 redes no tienen ningún protocolo de seguridad, 55 cuentan con el protocolo WEP, 70 cuentan solamente con el protocolo WPA, 1257 cuentan solamente con el protocolo WPA2 y finalmente 984 cuenta con los protocolos WPA y WPA2 simultáneamente. Para todos aquellos que se preguntan porque una red inalámbrica cuenta con dos protocolos de seguridad al mismo tiempo, esto se debe principalmente con problemas de compatibilidad con dispositivos antiguos (aproximadamente 10 años o más) que no son compatibles con el protocolo WPA2, un ejemplo es mi PSP 3000 que solo se puede conectar a redes WEP o WPA, de este modo permitimos que cualquier dispositivo que cuente con una tarjeta de red, se pueda conectar sin importar su antigüedad.</p> <p style="text-align: justify;">A continuación, mostramos una gráfica que nos permite ver cuántas veces se ha usado cada uno de los canales disponibles de comunicación para redes inalámbricas, en donde los más usados son los canales 1 (2412 MHz), 6 (2437 MHz) y 11 (2462 MHz).</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica4.png" width="600" height="400" /></p> <p> El siguiente análisis que genere consiste en conocer quiénes son los principales fabricantes de los Access Point, en donde se obtuvieron los siguientes resultados.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica2.svg" width="600" height="207" /></p> <p style="text-align: justify;">Los dos primeros fabricantes Huawei Technologies Co.,Ltd y Arcadyan Corporation son ampliamente conocidos por ser proveedores de Access Point para Telmex (el proveedor de telefonía e internet más grande de México), el tercer fabricante TP-Link Technologies Co.,Ltd. se caracteriza por ofrecer Access Point a precios competitivos empezando en los $20 dólares americanos,  y finalmente ARRIS Group, Inc. es uno de los proveedores de Access Point para Megacable (proveedor de telefonía, internet y televisión por cable).</p> <p style="text-align: justify;">El siguiente análisis que se genero fue gracias a que se empleó Minería de Datos, para ello, el objetivo es saber cuáles son las palabras más comunes en el nombre de una red inalámbrica para ello se hizo uso de Python y las librerías de NLTK y WordCloud, de este modo el resultado obtenido fue una nube de palabras, en donde entre más grande sea una palabra, más veces esta se detectó.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/redes-inalambricas-en-la-autopista-puebla-chiapas/grafica3.png" width="600" height="450" /></p> <p style="text-align: justify;">Esto confirma la hipótesis que habíamos descrito en el punto anterior, en donde es Telmex (la palabra que identifica las Access Point de esta empresa es INFINITUM) uno de los principales proveedores de servicios de Internet, seguido de Megacable (la palabra que identifica las Access Point de esta empresa es ARRIS).</p> <p style="text-align: justify;">Como conclusión podemos decir que el realizar Wardriving, o en este caso Bus_Wardriving nos permite obtener una gran cantidad de información con respecto a las redes inalámbricas que nos rodean, para posteriormente poder analizar esta información para generar nuevo conocimiento o confirmar una hipótesis que tengamos.</p> Reiniciar Modem Huawei HG658D con Script de Python en Windows 10 2020-05-11T03:35:55+00:00 2020-05-11T03:35:55+00:00 https://masttl.com/articulos/tutoriales/12-reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10 David Fragoso Porras <p>En el <a href="https://masttl.com/articulos/tutoriales/11-realizar-web-scraping-con-python-y-google-chrome-en-debian-10-x">tutorial anterior</a>, aprendimos a como instalar ChromeDriver en un entorno con Debian 10.x, en esta ocasión haremos usado de ChromeDriver en el sistema operativo Windows 10.</p> <p>En este tutorial se explica cómo instalar el entorno necesario para poder automatizar procesos en páginas web haciendo uso del ChromeDriver y Google Chrome. El uso de esta técnica se emplea cuando deseamos automatizar un proceso, pero la plataforma no cuenta con una API Rest (como es el caso de este modem), el API Rest no es publica o el uso de esta puede conllevar un costo.</p> <p>En primer lugar, es necesario tener instalado Python 3.x, así como tener agregado Python a las variables de entorno del sistema.  Adicionalmente debemos tener instalador Google Chrome.</p> <p>Una vez completado el paso anterior, debemos de abrir una terminal de “Símbolo de Sistema” e instalar selenium, para ello debemos de usar el siguiente comando:</p> <p><code>python3 -m pip install selenium</code></p> <p>El siguiente paso es obtener la versión correspondiente de ChromeDriver, en función de la versión de Google Chrome que tenemos instalado, para ello abrimos Google Chrome, dar clic en “Personaliza y controla Google Chrome”, a continuación, dirigirnos a “Ayuda” y finalmente dar clic en “Ayuda de Google Chrome”.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/google-chrome-version_1.jpg" alt="" /></p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/google-chrome-version_2.jpg" alt="" /></p> <p>Consiguientemente, no dirigimos a la <a href="https://chromedriver.chromium.org/downloads">siguiente página</a>, en donde descargamos el ChromeDriver que corresponde según la versión de Google Chrome que tenemos instalada en nuestro equipo.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/chromedriver-version.png" alt="" /></p> <p>Debemos de descargar el fichero nombrado como “chromedriver_win32.zip”, una vez finalizada la descarga de este, debemos de extraer su contenido usando una herramienta como “7-Zip”, “WinRAR”, u otro.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/chromedriver-version-so.png" alt="" /></p> <p>El contenido de este fichero es un ejecutable titulado “chromedriver.exe”, este recomiendo moverlo a “C:\chromedriver”, para ello, debemos de crear una carpeta en la raíz del disco duro C y titularla “chromedriver”, esto con la finalidad de que sea fácil de recordar la ubicación.</p> <p>El siguiente paso es ejecutar el siguiente código de Python, en donde debemos de cambiar los campos de la sección de variables, por el nombre de usuario, contraseña, IP del Modem, asi como la dirección del ChromeDriver en caso de ser necesario.</p> <p></p> <p>Lo que pasara es que este script abrirá una ventana de Google Chrome la cual no será visible (excepto si se comenta la línea 14 "chrome_options.add_argument('--headless')"), en donde en primer lugar, realizara el inicio de sesión usando las credenciales proporcionadas, posteriormente se dirigirá a la sección de “Mantenimiento”, a continuación a la sección de “Gestión de Dispositivos”, presionara el botón de “Reiniciar”, y finalmente aceptara la confirmación del reinicio.</p> <p>Este solo fue un ejemplo de cómo es posible automatizar un proceso usando ChromeDriver y Google Chrome, pero es posible automatizar cualquier otra tarea que se desee, así como si lo fusionamos con lo aprendido en el tutorial anterior, una vez finalizada la tarea podemos extraer información que sea relevante y nos permita verificar que se ha realizado la tarea satisfactoriamente.</p> <p>Espero que este articulo sea de utilidad y te permita automatizar procesos o tareas.</p> <p>En el <a href="https://masttl.com/articulos/tutoriales/11-realizar-web-scraping-con-python-y-google-chrome-en-debian-10-x">tutorial anterior</a>, aprendimos a como instalar ChromeDriver en un entorno con Debian 10.x, en esta ocasión haremos usado de ChromeDriver en el sistema operativo Windows 10.</p> <p>En este tutorial se explica cómo instalar el entorno necesario para poder automatizar procesos en páginas web haciendo uso del ChromeDriver y Google Chrome. El uso de esta técnica se emplea cuando deseamos automatizar un proceso, pero la plataforma no cuenta con una API Rest (como es el caso de este modem), el API Rest no es publica o el uso de esta puede conllevar un costo.</p> <p>En primer lugar, es necesario tener instalado Python 3.x, así como tener agregado Python a las variables de entorno del sistema.  Adicionalmente debemos tener instalador Google Chrome.</p> <p>Una vez completado el paso anterior, debemos de abrir una terminal de “Símbolo de Sistema” e instalar selenium, para ello debemos de usar el siguiente comando:</p> <p><code>python3 -m pip install selenium</code></p> <p>El siguiente paso es obtener la versión correspondiente de ChromeDriver, en función de la versión de Google Chrome que tenemos instalado, para ello abrimos Google Chrome, dar clic en “Personaliza y controla Google Chrome”, a continuación, dirigirnos a “Ayuda” y finalmente dar clic en “Ayuda de Google Chrome”.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/google-chrome-version_1.jpg" alt="" /></p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/google-chrome-version_2.jpg" alt="" /></p> <p>Consiguientemente, no dirigimos a la <a href="https://chromedriver.chromium.org/downloads">siguiente página</a>, en donde descargamos el ChromeDriver que corresponde según la versión de Google Chrome que tenemos instalada en nuestro equipo.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/chromedriver-version.png" alt="" /></p> <p>Debemos de descargar el fichero nombrado como “chromedriver_win32.zip”, una vez finalizada la descarga de este, debemos de extraer su contenido usando una herramienta como “7-Zip”, “WinRAR”, u otro.</p> <p><img style="display: block; margin-left: auto; margin-right: auto;" src="https://masttl.com/images/articulos/reiniciar-modem-huawei-hg658d-con-script-de-python-en-windows-10/chromedriver-version-so.png" alt="" /></p> <p>El contenido de este fichero es un ejecutable titulado “chromedriver.exe”, este recomiendo moverlo a “C:\chromedriver”, para ello, debemos de crear una carpeta en la raíz del disco duro C y titularla “chromedriver”, esto con la finalidad de que sea fácil de recordar la ubicación.</p> <p>El siguiente paso es ejecutar el siguiente código de Python, en donde debemos de cambiar los campos de la sección de variables, por el nombre de usuario, contraseña, IP del Modem, asi como la dirección del ChromeDriver en caso de ser necesario.</p> <p></p> <p>Lo que pasara es que este script abrirá una ventana de Google Chrome la cual no será visible (excepto si se comenta la línea 14 "chrome_options.add_argument('--headless')"), en donde en primer lugar, realizara el inicio de sesión usando las credenciales proporcionadas, posteriormente se dirigirá a la sección de “Mantenimiento”, a continuación a la sección de “Gestión de Dispositivos”, presionara el botón de “Reiniciar”, y finalmente aceptara la confirmación del reinicio.</p> <p>Este solo fue un ejemplo de cómo es posible automatizar un proceso usando ChromeDriver y Google Chrome, pero es posible automatizar cualquier otra tarea que se desee, así como si lo fusionamos con lo aprendido en el tutorial anterior, una vez finalizada la tarea podemos extraer información que sea relevante y nos permita verificar que se ha realizado la tarea satisfactoriamente.</p> <p>Espero que este articulo sea de utilidad y te permita automatizar procesos o tareas.</p>