Python is een veelzijdige programmeertaal die u kunt gebruiken om verschillende soorten GUI- en CLI-gebaseerde toepassingen te schrijven. Als Python nieuw voor je is, is er geen betere manier om je kennis te versterken dan door aan miniprojecten te werken.
Een geweldig voorbeeld van een Python-project om te schrijven is een ping sweeper, een klein hulpprogramma dat netwerkhosts inspecteert. Dit script behandelt fundamentele programmeerconcepten, inclusief printstatements, loops en functies.
Wat is een ping-veger?
Een ping sweeper is een programma dat een netwerkadres als invoer accepteert, de hosts in het netwerk pingt en de lijst met dode en levende hosts uitvoert. Het is een gemakkelijke manier om het aantal online hosts in uw netwerk te schatten en hun IPv4-adressen te achterhalen.
Als beginner is het maken van een ping-sweeper een geweldige manier om je basisprincipes van Python op te frissen. Dit praktische miniproject zal ook je begrip van basisprincipes van netwerken.
Vereisten voor uw Ping Sweeper
Voordat u met het ontwikkelingsproces begint, moet u ervoor zorgen dat u de nieuwste versie van Python op uw systeem hebt.
Controleer of u Python kunt uitvoeren door deze opdracht in de opdrachtprompt (voor Windows-gebruikers) of terminal (voor UNIX/Linux-systemen) te typen en op Binnenkomen:
python --versie
Op sommige systemen moet u mogelijk het volgende uitvoeren:
python3 --versie
Deze opdracht zou de versie van Python moeten retourneren die op uw systeem is geïnstalleerd. Als het een fout retourneert die lijkt op "python niet gevonden", moet u: installeer Python3 en ga dan verder met de volgende stappen.
De Ping Sweeper coderen
Er zijn meerdere manieren om dit script te bouwen. Sommige vereisen dat u meerdere modules installeert en importeert. Hier kies je voor een minimalistische benadering die geen andere externe afhankelijkheden heeft dan de cruciale os-module.
Voordat u begint met coderen, moet u de vereisten opsplitsen om beter te begrijpen welke functionaliteit u moet implementeren. Dit script bestaat uit drie delen:
- Accepteer het ingevoerde IP-adres.
- Pak de netwerk-ID uit het IP-adres.
- Herhaal alle hosts in het netwerk en print of een host dood of levend is.
Nu u een duidelijk beeld heeft van de workflow, gaan we beginnen met programmeren.
De invoer accepteren en verwerken
Het eerste deel van het script gaat over het accepteren van invoer van de gebruiker en het reduceren van dat IPv4-adres tot de eerste drie octetten. Dit geeft ons de netwerk-ID:
importeren os
IP = input ("[+] Voer het host-IP-adres in:\t")
print("[+] Ping Sweeper starten op " + IP)
punt = IP.rfind(".")
IP = IP[0:punt + 1]
De invoer() functie accepteert gebruikersinvoer. U kunt een string's. gebruiken zoek() methode om de index van de laatste keer dat de komma is opgetreden te extraheren en op te slaan in de punt variabel. Volg het op door alles te behouden, van de invoer tot het meest rechtse voorkomen van een decimaalteken.
De hosts scannen en de hoststatus afdrukken
U hebt het netwerkadres afgeleid van het ingevoerde IP. U kunt nu alle mogelijke waarden doorlopen voor het uiteindelijke IPv4-octet: 1-254. Sla binnen de for-lus het nieuwe IP-adres op in de gastheer variabel. Dit IP-adres is het basis-IP gevolgd door de waarde van de iteratorvariabele. Gebruik dan de os.systeem() methode om de. uit te voeren ping bevel tegen de gastheer variabel.
voor i in bereik(1, 255):
host = IP + str (i)
response = os.system("ping -c 1 -w 1 " + host + " >/dev/null")
als reactie == 0:
afdrukken (host + " is omhoog")
anders:
afdrukken (host + " is omlaag")
Test de antwoord waarde tegen 0 om de status van de host te bepalen en te beslissen of deze online of offline is. Als ping een niet-reagerende host tegenkomt, retourneert het een waarde die niet nul is. Anders retourneert het nul om aan te geven dat het een host kan bereiken.
U kunt de. toevoegen c vlag en met wie vlag, met waarden van 1, naar de oorspronkelijke ping-opdracht. Dit zorgt ervoor dat het slechts één pakket verzendt en één seconde wacht om een antwoord te ontvangen. Uw versie van ping kan deze opties wel of niet ondersteunen; raadpleeg de ping man-pagina om te controleren.
U moet de uitvoer ook omleiden naar: /dev/null om de details van de ping-uitvoer te verbergen. Merk op dat de ping- en /dev/null-syntaxis alleen compatibel is met Unix- of Linux-systemen. U kunt dit script op Windows uitvoeren door de c vlag met n en >/dev/null met >nul.
Het Ping Sweeper-script uitvoeren
U kunt dit script uitvoeren in de terminal of via een opdrachtprompt. Start een terminal, ga naar de locatie van het script en voer het uit met python3:
CD /directory/sweeper/
python3 sweeper.py
Voer een IPv4-adres of een subnet in de terminal in en de ping-sweeper zou aan het werk moeten gaan en de verwachte uitvoer retourneren.
Interessante projectideeën voor Python
Hands-on leren is misschien wel de beste en snelste manier om een programmeertaal te leren. Hoe meer projecten u uitvoert, hoe meer u concepten begrijpt, essentiële vaardigheden ontwikkelt en begrijpt hoe u problemen kunt oplossen.
Als je geen projectideeën meer hebt om aan te werken, bekijk dan deze samengestelde lijst met de beste projectideeën voor Python.