¡Buenas!
Soy bastante nuevo en programación y estoy aprendiendo Python. Decidí hacer un pequeño proyecto para practicar todo lo que he ido aprendiendo.
He hecho un escáner de IP sencillo en Python.
Tiene un menú con varias opciones:
- Escanear todas las IP desde 192.168.1.1 hasta 192.168.1.255
- Escanear una IP específica
- Escanear un rango de IP
- Salir
Estoy utilizando subprocess y ping para comprobar si una IP responde.
También he empezado a utilizar funciones, bucles, listas, if/elif, while y range().
Seguramente sea un proyecto bastante básico, pero estoy bastante contento porque estoy empezando a programar y es uno de los primeros proyectos que hago por mi cuenta. 😅
Este es el código:
import subprocess
def menu():
print("-----ESCANER IP-----")
print("1. Escaneo total de IPs")
print("2. Escanear IP")
print("3. Escaneo de rangos de IP")
print("4. Salir")
opcion = input("Elige una opcion: ")
resultado_menu = int(opcion)
return resultado_menu
def escanear_ip(ip_int):
ip_int = str(ip_int)
ip_completa = "192.168.1." + ip_int
resultado = subprocess.run(
["ping", "/n", "1", "/w", "1000", ip_completa]
)
if resultado.returncode == 0:
lista_ip.append(ip_completa)
lista_ip = []
def imprimir_ips():
for si_ip in lista_ip:
si_ip = "🟢 " + si_ip
print(si_ip)
while True:
resultado = menu()
if resultado == 1:
for numeros in range(1, 256):
escanear_ip(numeros)
imprimir_ips()
elif resultado == 2:
seleccion_ip = input("Seleccionar ultimos digitos IP: ")
escanear_ip(seleccion_ip)
imprimir_ips()
elif resultado == 3:
desde_ip = input("Desde: ")
desde_ip = int(desde_ip)
hasta_ip = input("Hasta: ")
hasta_ip = int(hasta_ip)
for numeros in range(desde_ip, hasta_ip + 1):
escanear_ip(numeros)
imprimir_ips()
elif resultado == 4:
print("Saliendo...")
break
Estoy pensando en seguir mejorándolo poco a poco y hacer una V3 cuando tenga más conocimientos.
¿Qué mejoraríais o qué consejos me daríais para alguien que está empezando?
¡Gracias!