Cách tạo Ping Sweeper bằng Python
Python là một ngôn ngữ lập trình đa năng mà bạn có thể sử dụng để viết các loại ứng dụng dựa trên GUI và CLI khác nhau. Nếu bạn mới sử dụng Python, không có cách nào tốt hơn để củng cố việc học của bạn hơn là làm việc trên các dự án nhỏ.
Một dự án Python mẫu tuyệt vời để viết là một trình quét ping, một tiện ích nhỏ để kiểm tra các máy chủ mạng. Tập lệnh này sẽ bao gồm các khái niệm lập trình cơ bản, bao gồm các câu lệnh in, vòng lặp và các hàm.
Mục Lục
Ping Sweeper là gì?
Trình quét ping là một chương trình chấp nhận một địa chỉ mạng làm đầu vào, ping các máy chủ trong mạng và xuất ra danh sách các máy chủ đã chết và còn sống. Đây là một cách dễ dàng để ước tính số lượng máy chủ trực tuyến trong mạng của bạn và tìm ra địa chỉ IPv4 của chúng.
Là một người mới bắt đầu, tạo một công cụ quét ping là một cách tuyệt vời để tìm hiểu những kiến thức cơ bản về Python của bạn. Dự án nhỏ thực hành này cũng sẽ giúp bạn hiểu thêm về các nguyên tắc cơ bản về mạng.
Điều kiện tiên quyết cho Ping Sweeper của bạn
Trước khi bắt đầu quá trình phát triển, bạn nên đảm bảo rằng bạn có phiên bản Python mới nhất trên hệ thống của mình.
Kiểm tra xem bạn có thể chạy Python hay không bằng cách nhập lệnh này vào dấu nhắc lệnh (đối với người dùng Windows) hoặc thiết bị đầu cuối (đối với hệ thống UNIX / Linux) và nhấn đi vào:
python --version
Trên một số hệ thống, bạn có thể cần chạy:
python3 --version
Lệnh này sẽ trả về phiên bản Python được cài đặt trên hệ thống của bạn. Nếu nó trả về một lỗi tương tự như “python not found”, bạn nên cài đặt Python3 và sau đó tiến hành các bước sau.
Mã hóa Ping Sweeper
Có nhiều cách tiếp cận để xây dựng tập lệnh này. Một số yêu cầu bạn cài đặt và nhập một số mô-đun. Ở đây, bạn sẽ thực hiện một cách tiếp cận tối giản không có các yếu tố phụ thuộc bên ngoài ngoài yếu tố quan trọng mô-đun hệ điều hành.
Trước khi bắt đầu viết mã, hãy chia nhỏ các yêu cầu để hiểu rõ hơn về chức năng bạn cần triển khai. Tập lệnh này có ba phần:
- Chấp nhận địa chỉ IP đầu vào.
- Trích xuất ID mạng từ địa chỉ IP.
- Lặp lại trên tất cả các máy chủ trong mạng và in nếu máy chủ đã chết hay còn sống.
Bây giờ bạn đã có một bức tranh rõ ràng về quy trình làm việc, hãy bắt đầu lập trình.
Chấp nhận và xử lý đầu vào
Phần đầu tiên của tập lệnh đề cập đến việc chấp nhận đầu vào từ người dùng và giảm địa chỉ IPv4 đó xuống ba octet đầu tiên của nó. Điều này cung cấp cho chúng tôi ID mạng:
import osIP = input("[+] Enter the Host IP Address:t")
print("[+] Starting Ping Sweeper on " + IP)
dot = IP.rfind(".")
IP = IP[0:dot + 1]
Các đầu vào() hàm chấp nhận đầu vào của người dùng. Bạn có thể sử dụng một chuỗi rfind () phương pháp để trích xuất chỉ mục của lần xuất hiện cuối cùng của dấu thập phân và lưu trữ nó trong dấu chấm Biến đổi. Theo dõi bằng cách giữ lại mọi thứ từ đầu vào cho đến khi xuất hiện dấu thập phân ở ngoài cùng bên phải.
Quét Máy chủ và In Trạng thái Máy chủ
Bạn đã lấy được địa chỉ mạng từ IP đầu vào. Giờ đây, bạn có thể lặp lại tất cả các giá trị có thể có cho octet IPv4 cuối cùng: 1–254. Bên trong vòng lặp for, hãy lưu trữ IP mới trong chủ nhà Biến đổi. IP này là IP cơ sở theo sau là giá trị của biến vòng lặp. Sau đó, sử dụng os.system () phương pháp để chạy ping lệnh chống lại chủ nhà Biến đổi.
for i in range(1, 255):
host = IP + str(i)
response = os.system("ping -c 1 -w 1 " + host + " >/dev/null")if response == 0:
print(host + " is up")
else:
print(host + " is down")
Kiểm tra phản ứng giá trị so với 0 để xác định trạng thái của máy chủ và quyết định xem máy chủ trực tuyến hay ngoại tuyến. Nếu ping gặp một máy chủ không phản hồi, nó sẽ trả về một giá trị khác 0. Nếu không, nó trả về 0 để chỉ ra một máy chủ mà nó có thể tiếp cận.
Bạn có thể thêm c cờ và w cờ, với các giá trị là 1, cho lệnh ping ban đầu. Điều này làm cho nó chỉ gửi một gói và đợi một giây để nhận được phản hồi. Phiên bản ping của bạn có thể hỗ trợ hoặc không hỗ trợ các tùy chọn này; tham khảo trang ping man để kiểm tra.
Bạn cũng nên chuyển hướng đầu ra đến / dev / null để ẩn chi tiết của kết quả ping. Lưu ý rằng cú pháp ping và / dev / null chỉ tương thích với các hệ thống Unix hoặc Linux. Bạn có thể chạy tập lệnh này trên Windows bằng cách thay thế c cờ với N và > / dev / null với > nul.
Chạy tập lệnh Ping Sweeper
Bạn có thể chạy tập lệnh này trong thiết bị đầu cuối hoặc thông qua dấu nhắc lệnh. Kích hoạt một thiết bị đầu cuối, di chuyển vào vị trí của tập lệnh và thực thi nó với python3:
cd /directory/sweeper/
python3 sweeper.py
Nhập địa chỉ IPv4 hoặc mạng con vào thiết bị đầu cuối và bộ quét ping sẽ hoạt động và trả về kết quả đầu ra mong đợi.
Ý tưởng dự án thú vị cho Python
Học thực hành được cho là cách tốt nhất và nhanh nhất để học một ngôn ngữ lập trình. Bạn càng thực hiện nhiều dự án, bạn càng nắm bắt được nhiều khái niệm, xây dựng các kỹ năng cần thiết và hiểu cách khắc phục sự cố.
Nếu bạn thiếu ý tưởng dự án để thực hiện, hãy xem danh sách các ý tưởng dự án tốt nhất cho Python này.