Téléverser les fichiers vers "/"
This commit is contained in:
55
scan_ip.py
Normal file
55
scan_ip.py
Normal file
@@ -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}.")
|
||||
Reference in New Issue
Block a user