Python es un lenguaje de programación versátil que puede usar para escribir diferentes tipos de aplicaciones basadas en GUI y CLI. Si eres nuevo en Python, no hay mejor manera de reforzar tu aprendizaje que trabajando en miniproyectos.

Un excelente proyecto de muestra de Python para escribir es un barrido de ping, una pequeña utilidad que inspecciona los hosts de la red. Este script cubrirá los conceptos fundamentales de programación, incluidas las instrucciones de impresión, los bucles y las funciones.

¿Qué es un barrido de ping?

Un barrido de ping es un programa que acepta una dirección de red como entrada, hace ping a los hosts en la red y genera la lista de hosts vivos y muertos. Es una manera fácil de estimar la cantidad de hosts en línea en su red y averiguar sus direcciones IPv4.

Como principiante, crear un barrido de ping es una excelente manera de repasar los conceptos básicos de Python. Este miniproyecto práctico también refrescará su comprensión de fundamentos de redes.

Requisitos previos para su Ping Sweeper

instagram viewer

Antes de comenzar el proceso de desarrollo, debe asegurarse de tener la última versión de Python en su sistema.

Compruebe si puede ejecutar Python escribiendo este comando en el símbolo del sistema (para usuarios de Windows) o terminal (para sistemas UNIX/Linux) y presionando Ingresar:

python --versión

En algunos sistemas, es posible que deba ejecutar:

python3 --versión

Este comando debería devolver la versión de Python instalada en su sistema. Si devuelve un error similar a "python no encontrado", debe instalar Python3 y luego proceda con los siguientes pasos.

Codificando el Ping Sweeper

Existen múltiples enfoques para construir este script. Algunos requerirán que instale e importe varios módulos. Aquí, adoptará un enfoque minimalista que no tiene dependencias externas además de las cruciales módulo del sistema operativo.

Antes de comenzar a codificar, desglose los requisitos para comprender mejor qué funcionalidad necesitará implementar. Hay tres partes en este script:

  1. Acepte la dirección IP de entrada.
  2. Extraiga el ID de red de la dirección IP.
  3. Iterar sobre todos los hosts de la red e imprimir si un host está vivo o muerto.

Ahora que tiene una imagen clara del flujo de trabajo, comencemos a programar.

Aceptar y procesar la entrada

La primera parte del script se ocupa de aceptar la entrada del usuario y reducir esa dirección IPv4 a sus primeros tres octetos. Esto nos da la identificación de la red:

importar sistema operativo

IP = entrada ("[+] Ingrese la dirección IP del host: \ t")
print("[+] Iniciando Ping Sweeper en " + IP)
punto = IP.rfind(".")
IP = IP[0:punto + 1]

los aporte() La función acepta la entrada del usuario. Puedes usar una cadena encontrar() método para extraer el índice de la última aparición del punto decimal y almacenarlo en el punto variable. Haga un seguimiento conservando todo, desde la entrada hasta la aparición más a la derecha de un punto decimal.

Escaneo de los hosts e impresión del estado del host

Ha derivado la dirección de red de la IP de entrada. Ahora puede recorrer en iteración todos los valores posibles para el octeto final de IPv4: 1–254. Dentro del ciclo for, almacene la nueva IP en el anfitrión variable. Esta IP es la IP base seguida del valor de la variable del iterador. Luego, usa el os.sistema() método para ejecutar el silbido comando contra el anfitrión variable.

por i en rango(1, 255):
anfitrión = IP + cadena (i)
respuesta = os.system("ping -c 1 -w 1 " + anfitrión + " >/dev/null")

si respuesta == 0:
imprimir (anfitrión + " es arriba")
más:
imprimir (anfitrión + " es abajo")

Prueba el respuesta valor contra 0 para determinar el estado del host y decidir si está en línea o fuera de línea. Si ping encuentra un host que no responde, devuelve un valor distinto de cero. De lo contrario, devuelve cero para indicar un host al que puede acceder.

Puedes agregar el C bandera y w bandera, con valores de 1, al comando ping original. Esto hace que envíe solo un paquete y espere un segundo para recibir una respuesta. Su versión de ping puede o no admitir estas opciones; consulte la página del manual de ping para comprobarlo.

También debe redirigir la salida a /dev/null para ocultar el detalle de la salida de ping. Tenga en cuenta que la sintaxis de ping y /dev/null es compatible solo con sistemas Unix o Linux. Puede ejecutar este script en Windows reemplazando el C bandera con norte y >/desarrollo/null con > nulo.

Ejecutar el script de barrido de ping

Puede ejecutar este script en la terminal o a través de un símbolo del sistema. Encienda una terminal, muévase a la ubicación del script y ejecútelo con python3:

discos compactos /directory/sweeper/
python3 barredora.py

Ingrese una dirección IPv4 o una subred en la terminal, y el barrido de ping debería comenzar a funcionar y devolver el resultado esperado.

Ideas de proyectos interesantes para Python

Podría decirse que el aprendizaje práctico es la mejor y más rápida manera de aprender un lenguaje de programación. Cuantos más proyectos trabaje, más comprenderá conceptos, desarrollará habilidades esenciales y comprenderá cómo solucionar problemas.

Si se ha quedado sin ideas de proyectos en las que trabajar, consulte esta lista seleccionada de las mejores ideas de proyectos para Python.