Python är ett mångsidigt programmeringsspråk som du kan använda för att skriva olika typer av GUI och CLI-baserade applikationer. Om du är ny på Python finns det inget bättre sätt att förstärka din inlärning än genom att arbeta med miniprojekt.

Ett bra exempel på Python-projekt att skriva är en ping-sweeper, ett litet verktyg som inspekterar nätverksvärdar. Detta skript kommer att täcka grundläggande programmeringskoncept, inklusive utskriftssatser, loopar och funktioner.

Vad är en Ping Sweeper?

En ping-sweeper är ett program som accepterar en nätverksadress som indata, pingar värdarna i nätverket och matar ut listan över döda och levande värdar. Det är ett enkelt sätt att uppskatta antalet onlinevärdar i ditt nätverk och ta reda på deras IPv4-adresser.

Som nybörjare är att skapa en ping-sweeper ett bra sätt att fräscha upp dina Python-grunder. Detta praktiska miniprojekt kommer också att fräscha upp din förståelse för grundläggande nätverk.

Förutsättningar för din Ping Sweeper

Innan du börjar utvecklingsprocessen bör du se till att du har den senaste versionen av Python på ditt system.

instagram viewer

Kontrollera om du kan köra Python genom att skriva det här kommandot i kommandotolken (för Windows-användare) eller terminal (för UNIX/Linux-system) och trycka på Stiga på:

python --version

På vissa system kan du behöva köra:

python3 --version

Detta kommando bör returnera den version av Python som är installerad på ditt system. Om det returnerar ett fel som liknar "python inte hittat", bör du installera Python3 och fortsätt sedan med följande steg.

Kodar Ping Sweeper

Det finns flera sätt att bygga detta skript. Vissa skulle kräva att du installerar och importerar flera moduler. Här kommer du att ta ett minimalistiskt tillvägagångssätt som inte har andra yttre beroenden än det avgörande os modul.

Innan du börjar koda, bryt ner kraven för att bättre förstå vilken funktionalitet du behöver implementera. Det finns tre delar till det här skriptet:

  1. Acceptera den inmatade IP-adressen.
  2. Extrahera nätverks-ID från IP-adressen.
  3. Iterera över alla värdar i nätverket och skriv ut om en värd är död eller vid liv.

Nu när du har en tydlig bild av arbetsflödet, låt oss börja programmera.

Acceptera och bearbeta indata

Den första delen av skriptet handlar om att acceptera input från användaren och reducera den IPv4-adressen till dess första tre oktetter. Detta ger oss nätverks-ID:

importera os

IP = input("[+] Ange värd-IP-adressen:\t")
print("[+] Startar Ping Sweeper på " + IP)
dot = IP.rfind(".")
IP = IP[0:prick + 1]

De inmatning() funktionen accepterar användarinmatning. Du kan använda en sträng rfind() metod för att extrahera indexet för den senaste förekomsten av decimalkomma och lagra det i punkt variabel. Följ upp det genom att behålla allt från inmatningen till den högra förekomsten av en decimalkomma.

Skanna värdarna och skriva ut värdstatus

Du har härlett nätverksadressen från ingångs-IP. Du kan nu iterera igenom alla möjliga värden för den slutliga IPv4-oktetten: 1–254. Inuti for-slingan, lagra den nya IP-adressen i värd variabel. Denna IP är bas-IP följt av värdet på iteratorvariabeln. Använd sedan os.system() metod för att köra ping kommando mot värd variabel.

för i i räckvidd(1, 255):
värd = IP + str (i)
respons = os.system("ping -c 1 -w 1 " + värd + " >/dev/null")

om svar == 0:
print (värd + " är upp")
annan:
print (värd + " är ner")

Testa svar värde mot 0 för att bestämma värdens status och avgöra om den är online eller offline. Om ping stöter på en värd som inte svarar returnerar den ett värde som inte är noll. Annars returnerar den noll för att indikera en värd som den kan nå.

Du kan lägga till c flagga och w flagga, med värden 1, till det ursprungliga pingkommandot. Detta gör att den bara skickar ett paket och väntar en sekund på att få ett svar. Din version av ping kanske stöder dessa alternativ eller inte; konsultera pingman-sidan för att kontrollera.

Du bör också omdirigera utgången till /dev/null för att dölja detaljerna i ping-utgången. Observera att ping- och /dev/null-syntaxen endast är kompatibel med Unix- eller Linux-system. Du kan köra det här skriptet på Windows genom att ersätta c flagga med n och >/dev/null med > nul.

Kör Ping Sweeper-skriptet

Du kan köra det här skriptet i terminalen eller via en kommandotolk. Starta en terminal, flytta till platsen för skriptet och kör det med python3:

CD /directory/sweeper/
python3 sweeper.py

Mata in en IPv4-adress eller ett subnät i terminalen, och ping-svepern ska börja arbeta och returnera den förväntade utdata.

Intressanta projektidéer för Python

Praktisk inlärning är utan tvekan det bästa och snabbaste sättet att lära sig ett programmeringsspråk. Ju fler projekt du arbetar med, desto mer kommer du att förstå koncept, bygga viktiga färdigheter och förstå hur du löser problem.

Om du har ont om projektidéer att arbeta med, kolla in den här kurerade listan över de bästa projektidéerna för Python.