Поиск по сайту:

Как создать очиститель Ping на Python


Создайте эту полезную и информативную утилиту, используя всего несколько строк Python.

Python — это универсальный язык программирования, который можно использовать для написания различных типов приложений с графическим пользовательским интерфейсом и CLI. Если вы новичок в Python, нет лучшего способа закрепить свои знания, чем работа над мини-проектами.

Отличный пример проекта Python для написания — это утилита ping Sweeper, небольшая утилита, проверяющая сетевые хосты. Этот сценарий охватывает фундаментальные концепции программирования, включая операторы печати, циклы и функции.

Что такое очиститель Ping?

Очиститель пинга — это программа, которая принимает сетевой адрес в качестве входных данных, пингует узлы в сети и выводит список мертвых и активных узлов. Это простой способ оценить количество онлайн-хостов в вашей сети и узнать их IPv4-адреса.

Для новичка создание ping-очистителя — отличный способ освежить свои знания Python. Этот практический мини-проект также освежит ваше понимание основ работы в сети.

Предварительные требования для вашего Ping Sweeper

Прежде чем начать процесс разработки, вам следует убедиться, что в вашей системе установлена последняя версия Python.

Проверьте, можете ли вы запустить Python, введя эту команду в командной строке (для пользователей Windows) или терминале (для систем UNIX/Linux) и нажав Enter:

python --version

В некоторых системах вам может потребоваться запустить:

python3 --version

Эта команда должна вернуть версию Python, установленную в вашей системе. Если он возвращает ошибку, похожую на «Python не найден», вам следует установить Python3, а затем выполнить следующие шаги.

Кодирование Ping Sweeper

Существует несколько подходов к созданию этого сценария. Некоторые потребуют от вас установки и импорта нескольких модулей. Здесь вы примените минималистский подход, не имеющий внешних зависимостей, кроме важнейшего модуля os.

Прежде чем приступить к кодированию, разбейте требования, чтобы лучше понять, какую функциональность вам нужно реализовать. Этот сценарий состоит из трех частей:

  1. Примите введенный IP-адрес.
  2. Извлеките идентификатор сети из IP-адреса.
  3. Переберите все хосты в сети и выведите информацию о том, жив или мертв хост.

Теперь, когда у вас есть четкое представление о рабочем процессе, приступим к программированию.

Принятие и обработка ввода

Первая часть сценария посвящена приему входных данных от пользователя и сокращению этого IPv4-адреса до первых трех октетов. Это дает нам идентификатор сети:

import os
 
IP = input("[+] Enter the Host IP Address:\t")
print("[+] Starting Ping Sweeper on " + IP)
dot = IP.rfind(".")
IP = IP[0:dot + 1]

Функция input() принимает вводимые пользователем данные. Вы можете использовать метод rfind() строки, чтобы извлечь индекс последнего вхождения десятичной точки и сохранить его в переменной dot . Следуйте за этим, сохраняя все от ввода до самого правого появления десятичной точки.

Сканирование хостов и печать статуса хоста

Вы получили сетевой адрес из введенного IP-адреса. Теперь вы можете перебирать все возможные значения последнего октета IPv4: 1–254. Внутри цикла for сохраните новый IP-адрес в переменной host. Этот IP-адрес является базовым IP-адресом, за которым следует значение переменной итератора. Затем используйте метод os.system() для запуска команды ping для переменной host .

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")

Сравните значение response с 0, чтобы определить статус хоста и решить, онлайн он или нет. Если ping обнаруживает неотвечающий хост, он возвращает ненулевое значение. В противном случае он возвращает ноль, чтобы указать хост, которого он может достичь.

Вы можете добавить флаг c и флаг w со значениями 1 к исходной команде ping. Это заставляет его отправлять только один пакет и ждать одну секунду, чтобы получить ответ. Ваша версия ping может поддерживать или не поддерживать эти параметры; обратитесь к странице руководства ping, чтобы проверить.

Вам также следует перенаправить вывод на /dev/null, чтобы скрыть детали вывода ping. Обратите внимание, что синтаксис ping и /dev/null совместим только с системами Unix или Linux. Вы можете запустить этот сценарий в Windows, заменив флаг c на n и >/dev/null на >nul. >.

Запуск сценария Ping Sweeper

Вы можете запустить этот скрипт в терминале или через командную строку. Запустите терминал, перейдите в местоположение скрипта и выполните его с помощью python3:

cd /directory/sweeper/
python3 sweeper.py 

Введите адрес IPv4 или подсеть в терминал, и очиститель пинга должен приступить к работе и вернуть ожидаемый результат.

Интересные идеи проектов для Python

Практическое обучение, пожалуй, лучший и самый быстрый способ выучить язык программирования. Чем больше проектов вы работаете, тем лучше вы поймете концепции, приобретете необходимые навыки и поймете, как решать проблемы.

Если у вас закончились идеи проектов для работы, ознакомьтесь с этим тщательно подобранным списком лучших идей проектов для Python.

Статьи по данной тематике: