Python est un langage de programmation polyvalent que vous pouvez utiliser pour écrire différents types d'applications GUI et CLI. Si vous débutez avec Python, il n'y a pas de meilleur moyen de renforcer votre apprentissage qu'en travaillant sur des mini-projets.
Un excellent exemple de projet Python à écrire est un balayage de ping, un petit utilitaire qui inspecte les hôtes du réseau. Ce script couvrira les concepts de programmation fondamentaux, y compris les instructions d'impression, les boucles et les fonctions.
Qu'est-ce qu'un Ping Sweeper ?
Un balayage de ping est un programme qui accepte une adresse réseau en entrée, envoie un ping aux hôtes du réseau et affiche la liste des hôtes morts et actifs. C'est un moyen simple d'estimer le nombre d'hôtes en ligne sur votre réseau et de connaître leurs adresses IPv4.
En tant que débutant, la création d'un balayage de ping est un excellent moyen de parfaire vos bases Python. Ce mini-projet pratique vous permettra également de rafraîchir votre compréhension de fondamentaux du réseautage.
Prérequis pour votre Ping Sweeper
Avant de commencer le processus de développement, vous devez vous assurer que vous disposez de la dernière version de Python sur votre système.
Vérifiez si vous pouvez exécuter Python en tapant cette commande dans l'invite de commande (pour les utilisateurs Windows) ou dans le terminal (pour les systèmes UNIX/Linux) et en appuyant sur Entrer:
python --version
Sur certains systèmes, vous devrez peut-être exécuter :
python3 --version
Cette commande doit renvoyer la version de Python installée sur votre système. S'il renvoie une erreur similaire à "python introuvable", vous devez installer Python3 puis procédez aux étapes suivantes.
Coder le Ping Sweeper
Il existe plusieurs approches pour créer ce script. Certains vous demanderaient d'installer et d'importer plusieurs modules. Ici, vous adopterez une approche minimaliste qui n'a pas de dépendances externes autres que les éléments cruciaux module système d'exploitation.
Avant de commencer à coder, décomposez les exigences pour mieux comprendre les fonctionnalités que vous devrez implémenter. Il y a trois parties dans ce script :
- Acceptez l'adresse IP d'entrée.
- Extrayez l'ID réseau de l'adresse IP.
- Itérer sur tous les hôtes du réseau et imprimer si un hôte est mort ou vivant.
Maintenant que vous avez une image claire du flux de travail, commençons la programmation.
Acceptation et traitement de l'entrée
La première partie du script traite de l'acceptation des entrées de l'utilisateur et de la réduction de cette adresse IPv4 à ses trois premiers octets. Cela nous donne l'ID réseau :
importer os
IP = input("[+] Entrez l'adresse IP de l'hôte :\t")
print("[+] Démarrage de Ping Sweeper sur " + IP)
point = IP.rfind(".")
IP = IP[0:point + 1]
La saisir() la fonction accepte les entrées de l'utilisateur. Vous pouvez utiliser une chaîne trouver() méthode pour extraire l'indice de la dernière occurrence de la virgule décimale et le stocker dans la point variable. Suivez-le en conservant tout depuis l'entrée jusqu'à l'occurrence la plus à droite d'un point décimal.
Analyse des hôtes et impression de l'état de l'hôte
Vous avez dérivé l'adresse réseau à partir de l'adresse IP d'entrée. Vous pouvez maintenant parcourir toutes les valeurs possibles pour l'octet IPv4 final: 1–254. À l'intérieur de la boucle for, stockez la nouvelle adresse IP dans le héberger variable. Cette adresse IP est l'adresse IP de base suivie de la valeur de la variable itérateur. Ensuite, utilisez le os.system() méthode pour exécuter le ping commandement contre le héberger variable.
pour je dans intervalle(1, 255):
hôte = IP + chaîne (i)
réponse = os.system("ping -c 1 -w 1 " + hôte + " >/dev/null")
si réponse == 0:
imprimer (hôte + " est en haut")
autre:
imprimer (hôte + " est vers le bas")
Testez le réponse valeur contre 0 pour déterminer le statut de l'hôte et décider s'il est en ligne ou hors ligne. Si ping rencontre un hôte qui ne répond pas, il renvoie une valeur différente de zéro. Sinon, il renvoie zéro pour indiquer un hôte qu'il peut atteindre.
Vous pouvez ajouter le c drapeau et w flag, avec des valeurs de 1, à la commande ping d'origine. Cela lui fait envoyer un seul paquet et attendre une seconde pour recevoir une réponse. Votre version de ping peut ou non prendre en charge ces options; consultez la page de manuel ping pour vérifier.
Vous devez également rediriger la sortie vers /dev/null pour masquer le détail de la sortie ping. Notez que la syntaxe ping et /dev/null n'est compatible qu'avec les systèmes Unix ou Linux. Vous pouvez exécuter ce script sous Windows en remplaçant le c drapeau avec n et >/dev/null avec >nul.
Exécution du script Ping Sweeper
Vous pouvez exécuter ce script dans le terminal ou via une invite de commande. Lancez un terminal, déplacez-vous à l'emplacement du script et exécutez-le avec python3 :
CD /directory/sweeper/
python3 balayeur.py
Entrez une adresse IPv4 ou un sous-réseau dans le terminal, et le balayeur de ping devrait se mettre au travail et renvoyer la sortie attendue.
Idées de projets intéressantes pour Python
L'apprentissage pratique est sans doute le moyen le meilleur et le plus rapide d'apprendre un langage de programmation. Plus vous travaillez sur des projets, plus vous comprendrez les concepts, développerez des compétences essentielles et comprendrez comment résoudre les problèmes.
Si vous êtes à court d'idées de projet sur lesquelles travailler, consultez cette liste organisée des meilleures idées de projet pour Python.