Введение
В этом проекте вы научитесь создавать сканер сети с использованием Python. Сканер сети будет использовать командную строку nmap для сканирования указанного IP-адреса и отображения результатов в графическом интерфейсе пользователя (GUI) с помощью библиотеки Tkinter.

🎯 Задачи
В этом проекте вы научитесь:
- Настраивать проект и устанавливать необходимые библиотеки
- Импортировать необходимые библиотеки для GUI и выполнения командной строки
nmap - Определять функцию сканирования для получения введенного пользователем IP-адреса и сканирования сети
- Создавать главное окно GUI
- Добавлять поле ввода для IP-адреса и кнопку "Сканировать сеть"
- Создавать текстовую область для отображения результатов сканирования
- Запускать проект и выполнять сканирование сети
🏆 Достижения
После завершения этого проекта вы сможете:
- Настраивать проект на Python и устанавливать библиотеки
- Импортировать библиотеки и использовать их в скрипте Python
- Создавать GUI с использованием Tkinter
- Обрабатывать пользовательский ввод и запускать функции
- Использовать командную строку
nmapдля сканирования сети
Настройка проекта
Создайте новый файл Python и назовите его network_scanner.py. Откройте файл в редакторе кода по вашему выбору.
cd ~/project
touch network_scanner.py
Затем установите командную строку nmap, tkinter и python-nmap с помощью следующей команды:
sudo apt update
sudo apt-get install nmap -y
sudo apt-get install python3-tk -y
sudo pip install python-nmap
Импорт необходимых библиотек
В начале файла импортируйте необходимые библиотеки: tkinter для GUI и subprocess для выполнения командной строки nmap.
import tkinter as tk
import subprocess
Определение функции сканирования
Определите функцию с именем scan_network, которая будет вызываться при нажатии кнопки "Сканировать сеть". Эта функция получит IP-адрес, введенный пользователем, очистит текстовую область с результатами и выполнит команду nmap для сканирования сети.
def scan_network():
ip_address = entry_ip.get()
result_text.delete(1.0, tk.END)
result_text.insert(tk.END, f"Scanning network: {ip_address}\n\n")
try:
output = subprocess.check_output(["nmap", "-F", ip_address])
result_text.insert(tk.END, output.decode("utf-8"))
except subprocess.CalledProcessError:
result_text.insert(tk.END, "An error occurred while scanning the network.")
Создание главного окна
Создайте главное окно GUI с использованием класса Tk() из библиотеки Tkinter.
window = tk.Tk()
window.title("Network Scanner")
Добавление поля ввода и кнопки сканирования
Создайте метку и поле ввода, чтобы пользователь мог ввести IP-адрес. Затем создайте кнопку "Сканировать сеть", которая вызовет функцию scan_network при нажатии.
label_ip = tk.Label(window, text="Enter IP Address:")
label_ip.pack()
entry_ip = tk.Entry(window)
entry_ip.pack()
scan_button = tk.Button(window, text="Scan Network", command=scan_network)
scan_button.pack()
Добавление текстовой области для результатов
Создайте текстовую область с использованием класса Text() из библиотеки Tkinter. Эта текстовая область будет отображать результаты сканирования.
result_text = tk.Text(window)
result_text.pack()
Запуск главного цикла
Добавьте следующую строку в конце файла, чтобы запустить основной цикл GUI:
window.mainloop()
Запуск проекта
Сохраните файл и запустите его с помощью интерпретатора Python. Появится окно GUI.
cd ~/project
python network_scanner.py
Введите IP-адрес, который вы хотите сканировать, в поле ввода и нажмите кнопку "Сканировать сеть". Сетевое сканирование будет выполнено с использованием nmap, и результаты будут отображены в текстовой области.

Резюме
В этом проекте вы научились создавать сетевой сканер на Python с использованием библиотеки Tkinter. Сетевой сканер использует командную строку nmap для сканирования указанного IP-адреса. Результаты отображаются в графическом интерфейсе пользователя, что позволяет пользователям легко выполнять сетевые сканирования и просматривать вывод. Вы можете дальнейшим образом улучшить сетевой сканер, добавив больше функций и улучшив пользовательский интерфейс в соответствии с вашими требованиями.



