Introducción a python & redes
Python es un lenguaje de programación limpio, muy legible y se ha ganado un amplio apoyo en la comunidad de redes tanto en lo técnico como en los modelos de negocio.
Éste lenguaje tiene además una gran comunidad activa, por lo que dispone de muchos recursos como bibliotecas, documentación, repositorios, tutoriales, etc.
Por eso el concepto de “Python and Networks” es algo a lo que hay que ponerle atención si queremos hacer arquitecturas innovadoras que sean competentes en el mercado.
Un tema que requiere práctica
La combinación del uso del lenguaje python con redes, es más cercana a la administración de sistemas, que a la programación en sí, pero ésto no significa que sea algo trivial.
De hecho es necesario tener ciertos conocimientos como:
trabajar con Git, estar familiarizado con los formatos de datos JSON y YAML, saber realizar configuraciones de Cisco (como CiscoConfParse), haber usado telnetlib, SNMP y saber administrar las bibliotecas principales de Python.
Esto es para que el aprendiz de éste acercamiento a redes efectivas con Python, comprenda las ventajas al escanear la red y obtener por ejemplo notificaciones SNMPv3, gráficas, recuperación de datos usando, enviar notificaciones por correo electrónico, etc.
Herramientas
Existen unas varias herramientas como Paramiko SSH, Netmiko y PExpect.
Paramiko SSH ara hacer conexión a dispositivos de red.
Netmiko Gestión de dispositivos de red.
Y PExpect para automatizar aplicaciones interactivas, automatizar scripts para duplicar instalaciones de paquetes en diferentes servidores, etc.
Es un tema amplio y por eso es un tema que requiere también tener presente conceptos como Sockets, TSL and SSL, aplicaciones web, aquitectura de servers, inspección de paquetes, etc.
Aunque aparentemente sea complejo, se pueden obtener muchas ventajas de ésta curva de aprendizaje si un día necesitas una re configuración, agregar VLAN a switches, configurar decenas de puertos switch o simplpemente te encuentras ante la interminable información que el anterior administrador nunca supo ordenar efectivamente.
Finalmente, un uso práctico en el que podemos prestar atención es un spider - web search engine con Python ( Django), usando una base de datos en MySQL.
Se crearía una GUI para manejar la the base de datos o el Spider (o ambos).
Herramientas usadas:
-Sockets
-Interación entre las bases de datos
-wxPython (interfaz de usuario)
-Multiprocesamiento

¿Y tú, cómo y con qué herramientas harías una aplicación de python para redes?
Genial encontrar alguien que habla de programación en steemit. Saludos.