Η Python είναι μια ευέλικτη γλώσσα προγραμματισμού που μπορείτε να χρησιμοποιήσετε για να γράψετε διαφορετικούς τύπους εφαρμογών που βασίζονται σε GUI και CLI. Εάν είστε νέος στην Python, δεν υπάρχει καλύτερος τρόπος για να ενισχύσετε τη μάθησή σας από το να εργάζεστε σε μίνι έργα.
Ένα εξαιρετικό δείγμα έργου Python για να γράψετε είναι ένα ping sweeper, ένα μικρό βοηθητικό πρόγραμμα που επιθεωρεί κεντρικούς υπολογιστές δικτύου. Αυτό το σενάριο θα καλύπτει θεμελιώδεις έννοιες προγραμματισμού, συμπεριλαμβανομένων των εντολών εκτύπωσης, των βρόχων και των συναρτήσεων.
Τι είναι το Ping Sweeper;
Το σάρωση ping είναι ένα πρόγραμμα που δέχεται μια διεύθυνση δικτύου ως είσοδο, πραγματοποιεί ping στους κεντρικούς υπολογιστές στο δίκτυο και εξάγει τη λίστα νεκρών και ζωντανών κεντρικών υπολογιστών. Είναι ένας εύκολος τρόπος να υπολογίσετε τον αριθμό των διαδικτυακών κεντρικών υπολογιστών στο δίκτυό σας και να μάθετε τις διευθύνσεις IPv4 τους.
Ως αρχάριος, η δημιουργία ενός σαρώστρας ping είναι ένας πολύ καλός τρόπος για να μάθετε τα βασικά της Python. Αυτό το πρακτικό μίνι έργο θα ανανεώσει επίσης την κατανόησή σας
βασικές αρχές δικτύωσης.Προϋποθέσεις για το Ping Sweeper σας
Πριν ξεκινήσετε τη διαδικασία ανάπτυξης, θα πρέπει να βεβαιωθείτε ότι έχετε την πιο πρόσφατη έκδοση της Python στο σύστημά σας.
Ελέγξτε εάν μπορείτε να εκτελέσετε την Python πληκτρολογώντας αυτήν την εντολή στη γραμμή εντολών (για χρήστες Windows) ή στο τερματικό (για συστήματα UNIX/Linux) και πατώντας Εισαγω:
python -- έκδοση
Σε ορισμένα συστήματα, μπορεί να χρειαστεί να εκτελέσετε:
python3 --έκδοση
Αυτή η εντολή θα πρέπει να επιστρέψει την έκδοση της Python που είναι εγκατεστημένη στο σύστημά σας. Εάν επιστρέψει ένα σφάλμα παρόμοιο με το "python not found", θα πρέπει εγκατάσταση Python3 και στη συνέχεια προχωρήστε με τα παρακάτω βήματα.
Κωδικοποίηση του Ping Sweeper
Υπάρχουν πολλές προσεγγίσεις για τη δημιουργία αυτού του σεναρίου. Κάποιοι θα απαιτούσαν να εγκαταστήσετε και να εισαγάγετε πολλές ενότητες. Εδώ, θα ακολουθήσετε μια μινιμαλιστική προσέγγιση που δεν έχει άλλες εξωτερικές εξαρτήσεις εκτός από το κρίσιμο λειτουργική μονάδα.
Πριν ξεκινήσετε την κωδικοποίηση, αναλύστε τις απαιτήσεις για να κατανοήσετε καλύτερα ποια λειτουργικότητα θα χρειαστεί να εφαρμόσετε. Υπάρχουν τρία μέρη σε αυτό το σενάριο:
- Αποδεχτείτε τη διεύθυνση IP εισαγωγής.
- Εξαγάγετε το αναγνωριστικό δικτύου από τη διεύθυνση IP.
- Επαναλάβετε όλους τους κεντρικούς υπολογιστές στο δίκτυο και εκτυπώστε εάν ένας κεντρικός υπολογιστής είναι νεκρός ή ζωντανός.
Τώρα που έχετε μια σαφή εικόνα της ροής εργασίας, ας ξεκινήσουμε τον προγραμματισμό.
Αποδοχή και επεξεργασία της εισόδου
Το πρώτο μέρος του σεναρίου ασχολείται με την αποδοχή εισόδου από τον χρήστη και τη μείωση αυτής της διεύθυνσης IPv4 στις τρεις πρώτες οκτάδες του. Αυτό μας δίνει το αναγνωριστικό δικτύου:
εισαγωγή os
IP = input("[+] Εισαγάγετε τη διεύθυνση IP του κεντρικού υπολογιστή:\t")
print("[+] Starting Ping Sweeper on " + IP)
dot = IP.rfind(".")
IP = IP[0:dot + 1]
ο εισαγωγή() η λειτουργία αποδέχεται την είσοδο του χρήστη. Μπορείτε να χρησιμοποιήσετε μια συμβολοσειρά rfind() μέθοδος εξαγωγής του δείκτη της τελευταίας εμφάνισης της υποδιαστολής και αποθήκευσης στο τελεία μεταβλητός. Ακολουθήστε το διατηρώντας τα πάντα από την είσοδο μέχρι την δεξιά εμφάνιση μιας υποδιαστολής.
Σάρωση των κεντρικών υπολογιστών και εκτύπωση κατάστασης κεντρικού υπολογιστή
Έχετε λάβει τη διεύθυνση δικτύου από την IP εισόδου. Τώρα μπορείτε να επαναλάβετε όλες τις πιθανές τιμές για την τελική οκτάδα IPv4: 1–254. Μέσα στο βρόχο for, αποθηκεύστε τη νέα IP στο πλήθος μεταβλητός. Αυτή η IP είναι η βασική IP ακολουθούμενη από την τιμή της μεταβλητής iterator. Στη συνέχεια, χρησιμοποιήστε το os.system() μέθοδος εκτέλεσης του ping εντολή κατά του πλήθος μεταβλητός.
Για Εγώ σε εύρος(1, 255):
host = IP + str (i)
answer = os.system("ping -c 1 -w 1 " + host + " >/dev/null")
αν απάντηση == 0:
εκτύπωση (κεντρικός υπολογιστής + " είναι πάνω")
αλλού:
εκτύπωση (κεντρικός υπολογιστής + " είναι κάτω")
Δοκιμάστε το απάντηση τιμή έναντι 0 για να προσδιορίσετε την κατάσταση του κεντρικού υπολογιστή και να αποφασίσετε εάν είναι συνδεδεμένος ή εκτός σύνδεσης. Εάν το ping συναντήσει έναν κεντρικό υπολογιστή που δεν αποκρίνεται, επιστρέφει μια μη μηδενική τιμή. Διαφορετικά, επιστρέφει μηδέν για να υποδείξει έναν κεντρικό υπολογιστή που μπορεί να φτάσει.
Μπορείτε να προσθέσετε το ντο σημαία και w σημαία, με τιμές 1, στην αρχική εντολή ping. Αυτό το κάνει να στέλνει μόνο ένα πακέτο και να περιμένει ένα δευτερόλεπτο για να λάβει απάντηση. Η έκδοση του ping μπορεί να υποστηρίζει ή να μην υποστηρίζει αυτές τις επιλογές. συμβουλευτείτε τη σελίδα man ping για έλεγχο.
Θα πρέπει επίσης να ανακατευθύνετε την έξοδο σε /dev/null για να κρύψετε τις λεπτομέρειες της εξόδου ping. Σημειώστε ότι η σύνταξη ping και /dev/null είναι συμβατή μόνο με συστήματα Unix ή Linux. Μπορείτε να εκτελέσετε αυτό το σενάριο στα Windows αντικαθιστώντας το ντο σημαία με n και >/dev/null με >μηδενικό.
Εκτέλεση του σεναρίου Ping Sweeper
Μπορείτε να εκτελέσετε αυτό το σενάριο στο τερματικό ή μέσω μιας γραμμής εντολών. Ενεργοποιήστε ένα τερματικό, μετακινηθείτε στη θέση του σεναρίου και εκτελέστε το με το python3:
CD /directory/sweeper/
python3 sweeper.py
Εισαγάγετε μια διεύθυνση IPv4 ή ένα υποδίκτυο στο τερματικό και το σάρωθρο ping θα αρχίσει να λειτουργεί και θα επιστρέψει την αναμενόμενη έξοδο.
Ενδιαφέρουσες ιδέες έργων για Python
Η πρακτική εκμάθηση είναι αναμφισβήτητα ο καλύτερος και ταχύτερος τρόπος εκμάθησης μιας γλώσσας προγραμματισμού. Όσο περισσότερα έργα εργάζεστε, τόσο περισσότερο θα κατανοείτε έννοιες, θα αποκτάτε βασικές δεξιότητες και θα καταλαβαίνετε πώς να διορθώνετε προβλήματα.
Εάν δεν έχετε ιδέες για έργα για να εργαστείτε, ρίξτε μια ματιά σε αυτήν την επιμελημένη λίστα με τις καλύτερες ιδέες έργων για την Python.