Python je všestranný programovací jazyk, který můžete použít k psaní různých typů GUI a aplikací založených na CLI. Pokud jste v Pythonu noví, neexistuje lepší způsob, jak posílit své učení, než pracovat na miniprojektech.

Skvělým ukázkovým projektem Pythonu, který lze napsat, je ping sweeper, malý nástroj, který kontroluje hostitele sítě. Tento skript pokryje základní programovací koncepty, včetně tiskových příkazů, smyček a funkcí.

Co je to Ping Sweeper?

Ping sweeper je program, který přijímá síťovou adresu jako vstup, pinguje hostitele v síti a vydává seznam mrtvých a živých hostitelů. Je to snadný způsob, jak odhadnout počet online hostitelů ve vaší síti a zjistit jejich IPv4 adresy.

Pro začátečníky je vytvoření ping sweeperu skvělý způsob, jak si oprášit základy Pythonu. Tento praktický miniprojekt také osvěží vaše porozumění základy síťování.

Předpoklady pro váš Ping Sweeper

Před zahájením procesu vývoje byste se měli ujistit, že máte na svém systému nejnovější verzi Pythonu.

Zkontrolujte, zda můžete spustit Python zadáním tohoto příkazu do příkazového řádku (pro uživatele Windows) nebo terminálu (pro systémy UNIX/Linux) a stisknutím

Vstupte:

python --verze

Na některých systémech může být nutné spustit:

python3 --verze

Tento příkaz by měl vrátit verzi Pythonu nainstalovanou ve vašem systému. Pokud vrátí chybu podobnou „python nenalezen“, měli byste nainstalovat Python3 a poté pokračujte podle následujících kroků.

Kódování nástroje Ping Sweeper

Existuje několik přístupů k vytvoření tohoto skriptu. Některé by vyžadovaly instalaci a import několika modulů. Zde použijete minimalistický přístup, který nemá jiné než zásadní vnější závislosti os modul.

Než začnete kódovat, rozdělte požadavky, abyste lépe pochopili, jakou funkcionalitu budete muset implementovat. Tento skript má tři části:

  1. Přijměte vstupní IP adresu.
  2. Extrahujte ID sítě z adresy IP.
  3. Iterujte přes všechny hostitele v síti a tiskněte, pokud je hostitel mrtvý nebo živý.

Nyní, když máte jasnou představu o pracovním postupu, můžeme začít s programováním.

Přijetí a zpracování zadání

První část skriptu se zabývá přijetím vstupu od uživatele a snížením této adresy IPv4 na její první tři oktety. Tím získáme ID sítě:

import os

IP = input("[+] Zadejte IP adresu hostitele:\t")
print("[+] Spouštění nástroje Ping Sweeper na " + IP)
tečka = IP.rfin("")
IP = IP[0:tečka + 1]

The vstup() funkce přijímá uživatelský vstup. Můžete použít řetězec rfind() metoda extrahovat index posledního výskytu desetinné čárky a uložit jej do tečka variabilní. Pokračujte tím, že zachováte vše od vstupu až po výskyt desetinné čárky zcela vpravo.

Skenování hostitelů a tisk stavu hostitele

Síťovou adresu jste odvodili ze vstupní IP. Nyní můžete iterovat všechny možné hodnoty pro konečný oktet IPv4: 1–254. Uvnitř smyčky for uložte novou IP do hostitel variabilní. Tato IP je základní IP následovaná hodnotou proměnné iterátoru. Poté použijte os.system() způsob, jak spustit ping příkaz proti hostitel variabilní.

pro i v rozsah(1, 255):
hostitel = IP + str (i)
odpověď = os.system("ping -c 1 -w 1 " + hostitel + " >/dev/null")

-li odpověď == 0:
tisknout (hostitel + " je nahoru")
jiný:
tisknout (hostitel + " je dolů")

Otestujte Odezva hodnotu proti 0, abyste určili stav hostitele a rozhodli, zda je online nebo offline. Pokud ping narazí na nereagujícího hostitele, vrátí nenulovou hodnotu. V opačném případě vrátí nulu, což označuje hostitele, kterého může dosáhnout.

Můžete přidat C vlajka a w příznak s hodnotami 1 na původní příkaz ping. Díky tomu odešle pouze jeden paket a čeká na odpověď jednu sekundu. Vaše verze pingu může nebo nemusí podporovat tyto možnosti; zkontrolujte manuálovou stránku pingu.

Měli byste také přesměrovat výstup na /dev/null pro skrytí detailů výstupu pingu. Všimněte si, že syntaxe ping a /dev/null je kompatibilní pouze se systémy Unix nebo Linux. Tento skript můžete spustit v systému Windows nahrazením souboru C vlajka s n a >/dev/null s >nul.

Spuštění skriptu Ping Sweeper

Tento skript můžete spustit v terminálu nebo pomocí příkazového řádku. Spusťte terminál, přesuňte se do umístění skriptu a spusťte jej pomocí python3:

CD /directory/sweeper/
python3 sweeper.py

Zadejte IPv4 adresu nebo podsíť do terminálu a ping sweeper by měl začít pracovat a vrátit očekávaný výstup.

Zajímavé nápady na projekty pro Python

Praktické učení je pravděpodobně nejlepší a nejrychlejší způsob, jak se naučit programovací jazyk. Čím více projektů budete pracovat, tím více pochopíte koncepty, vybudujete základní dovednosti a pochopíte, jak řešit problémy.

Pokud vám došly nápady na projekty, na kterých byste mohli pracovat, podívejte se na tento seznam nejlepších nápadů na projekty pro Python.