From 0536f526160e736e28fc21adb5ae6fcaa5f0308c Mon Sep 17 00:00:00 2001 From: gilles Date: Sat, 4 Jan 2025 07:46:04 +0100 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"/"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scan_ip.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 scan_ip.py diff --git a/scan_ip.py b/scan_ip.py new file mode 100644 index 0000000..46ee3ed --- /dev/null +++ b/scan_ip.py @@ -0,0 +1,55 @@ +import socket +import ipaddress +import sys +import time + +# Fonction pour tester si un port est ouvert sur une IP donnée +def check_port(ip, port): + try: + # Créer une connexion à l'IP et au port spécifié + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.settimeout(0.03) # Timeout après 1 seconde + result = s.connect_ex((str(ip), port)) # connect_ex retourne 0 si connecté + return result == 0 # Si la connexion est réussie, le port est ouvert + except socket.error: + return False + +# Fonction principale pour scanner la plage d'IP et vérifier le port +def scan_ip_range(ip_range, port): + open_ips = [] + count = 0 # Compteur d'IP avec le port ouvert + # Générer toutes les adresses IP de la plage + network = ipaddress.IPv4Network(ip_range) + + for ip in network.hosts(): + # Afficher l'IP en cours d'analyse sur une seule ligne + sys.stdout.write(f"Analyse de l'IP {ip}...\r") + sys.stdout.flush() # Forcer l'affichage immédiat + + if check_port(ip, port): + print(f"Port {port} ouvert sur {ip}") + open_ips.append(str(ip)) + count += 1 # Incrémenter le compteur si le port est ouvert + else: + pass # Rien à afficher si le port est fermé + + # Petit délai pour éviter une surcharge de mise à jour de la ligne + time.sleep(0.02) + + return open_ips, count + +# Paramètres de l'application +ip_range = '10.0.0.0/22' # Plage d'IP à scanner +port = 80 # Port à vérifier + +# Lancer le scan +open_ips, total_open = scan_ip_range(ip_range, port) + +# Afficher les résultats +if open_ips: + print(f"\nLes IPs avec le port {port} ouvert sont :") + for ip in open_ips: + print(ip) + print(f"\nTotal des IPs avec le port {port} ouvert : {total_open}") +else: + print(f"\nAucune IP avec le port {port} ouvert dans la plage {ip_range}.")