Python je vsestranski programski jezik, ki ga lahko uporabite za pisanje različnih vrst aplikacij, ki temeljijo na GUI in CLI. Če ste novi v Pythonu, ni boljšega načina za okrepitev vašega učenja kot z delom na mini projektih.

Odličen vzorec Python projekta za pisanje je ping sweeper, majhen pripomoček, ki pregleduje omrežne gostitelje. Ta skript bo pokrival temeljne koncepte programiranja, vključno s stavki za tiskanje, zankami in funkcijami.

Kaj je Ping Sweeper?

Ping sweeper je program, ki kot vhod sprejme omrežni naslov, pinga gostitelje v omrežju in izpiše seznam mrtvih in živih gostiteljev. To je preprost način, da ocenite število spletnih gostiteljev v vašem omrežju in ugotovite njihove naslove IPv4.

Kot začetnik je ustvarjanje čistilnika pingov odličen način, da osvežite svoje osnove Pythona. Ta praktični mini projekt bo tudi osvežil vaše razumevanje osnove mreženja.

Predpogoji za vaš Ping Sweeper

Preden začnete razvojni proces, se morate prepričati, da imate v sistemu najnovejšo različico Pythona.

Preverite, ali lahko zaženete Python, tako da vnesete ta ukaz v ukazni poziv (za uporabnike Windows) ali terminal (za sisteme UNIX/Linux) in pritisnete Vnesite:

python --različica

V nekaterih sistemih boste morda morali zagnati:

python3 --različica

Ta ukaz bi moral vrniti različico Pythona, nameščeno v vašem sistemu. Če vrne napako, podobno "python not found", bi morali namestite Python3 in nato nadaljujte z naslednjimi koraki.

Kodiranje Ping Sweeperja

Obstaja več pristopov za izdelavo tega skripta. Nekateri bi zahtevali namestitev in uvoz več modulov. Tu boste izbrali minimalističen pristop, ki nima zunanjih odvisnosti, razen ključne os modul.

Preden začnete kodirati, razčlenite zahteve, da boste bolje razumeli, katero funkcionalnost boste morali implementirati. Ta skript je sestavljen iz treh delov:

  1. Sprejmite vneseni naslov IP.
  2. Izvlecite ID omrežja iz naslova IP.
  3. Preglejte vse gostitelje v omrežju in natisnite, če je gostitelj živ ali mrtev.

Zdaj, ko imate jasno sliko poteka dela, začnimo s programiranjem.

Sprejemanje in obdelava vnosa

Prvi del skripta se ukvarja s sprejemanjem vnosa od uporabnika in zmanjševanjem naslova IPv4 na prve tri oktete. To nam da ID omrežja:

uvoz os

IP = input("[+] Vnesite naslov IP gostitelja:\t")
print("[+] Zagon programa Ping Sweeper na " + IP)
pika = IP.rfind(".")
IP = IP[0:pika + 1]

The vnos() funkcija sprejema uporabniški vnos. Lahko uporabite vrvico rfind() metoda za ekstrahiranje indeksa zadnje pojavitve decimalne vejice in shranjevanje v pika spremenljivka. Nadaljujte tako, da obdržite vse od vnosa do skrajno desnega pojava decimalne vejice.

Skeniranje gostiteljev in tiskanje stanja gostitelja

Omrežni naslov ste izpeljali iz vhodnega IP-ja. Zdaj lahko ponovite vse možne vrednosti za končni oktet IPv4: 1–254. Znotraj zanke for shranite novi IP v gostitelj spremenljivka. Ta IP je osnovni IP, ki mu sledi vrednost spremenljivke iteratorja. Nato uporabite os.system() način za zagon ping ukaz proti gostitelj spremenljivka.

za jaz v obseg (1, 255):
gostitelj = IP + str (i)
odziv = os.system("ping -c 1 -w 1 " + gostitelj + " >/dev/null")

če odgovor == 0:
natisni (gostitelj + " je gor")
drugače:
natisni (gostitelj + " je dol")

Preizkusite odgovor vrednost proti 0, da določite status gostitelja in se odločite, ali je na zvezi ali brez povezave. Če ping naleti na neodzivnega gostitelja, vrne vrednost, ki ni enaka nič. V nasprotnem primeru vrne nič, da nakaže gostitelja, ki ga lahko doseže.

Dodate lahko c zastava in w zastavico z vrednostmi 1 na prvotni ukaz ping. Zaradi tega pošlje samo en paket in čaka eno sekundo, da prejme odgovor. Vaša različica pinga lahko te možnosti podpira ali ne; preverite na strani ping man.

Izhod morate tudi preusmeriti na /dev/null da skrijete podrobnosti izhoda ping. Upoštevajte, da sta sintaksi ping in /dev/null združljivi samo s sistemi Unix ali Linux. Ta skript lahko zaženete v sistemu Windows tako, da zamenjate c zastava z n in >/dev/null z >nul.

Zagon skripta Ping Sweeper

Ta skript lahko zaženete v terminalu ali prek ukaznega poziva. Zaženite terminal, premaknite se na lokacijo skripta in ga izvedite s python3:

cd /directory/sweeper/
python3 sweeper.py

Vnesite naslov IPv4 ali podomrežje v terminal in pometač ping bi moral začeti z delom in vrniti pričakovani rezultat.

Zanimive projektne ideje za Python

Praktično učenje je nedvomno najboljši in najhitrejši način za učenje programskega jezika. Več projektov, na katerih delate, bolj boste razumeli koncepte, razvili bistvene veščine in razumeli, kako odpraviti težave.

Če vam zmanjkuje idej za projekte, na katerih bi lahko delali, si oglejte ta izbrani seznam najboljših idej za projekte za Python.