Интернационализация для всех сервисов сервера
This commit is contained in:
parent
7491ce455d
commit
ba8cea01e7
13 changed files with 1011 additions and 206 deletions
|
|
@ -2,7 +2,8 @@ from scapy.layers.l2 import ARP, Ether
|
|||
from scapy.sendrecv import srp
|
||||
import netifaces
|
||||
from netaddr import IPNetwork
|
||||
|
||||
from utils.i18n import get_translations, _
|
||||
from babel.support import Translations
|
||||
|
||||
class NetworkScanner:
|
||||
"""Инициализация сетевого сканера.
|
||||
|
|
@ -11,12 +12,13 @@ class NetworkScanner:
|
|||
вывода информации о клиентах.
|
||||
"""
|
||||
|
||||
def __init__(self, interface=None):
|
||||
def __init__(self, interface=None, translations: Translations = Depends(get_translations("services"))):
|
||||
"""Инициализация параметров сетевого сканера.
|
||||
|
||||
Args:
|
||||
interface (str, optional): Название сетевого интерфейса. По умолчанию
|
||||
используется интерфейс по умолчанию из netifaces.gateways().
|
||||
translations: Объект переводов для текущего языка.
|
||||
|
||||
Инициализирует интерфейс, информацию об IP-адресах и локальный MAC-адрес.
|
||||
"""
|
||||
|
|
@ -29,6 +31,7 @@ class NetworkScanner:
|
|||
]
|
||||
self.local_mac = netifaces.ifaddresses(
|
||||
self.interface)[netifaces.AF_LINK][0]["addr"]
|
||||
self.translations = translations
|
||||
|
||||
def _create_arp_packet(self, target_ip):
|
||||
"""Создаёт ARP-пакет для отправки на указанный IP-адрес.
|
||||
|
|
@ -95,8 +98,8 @@ class NetworkScanner:
|
|||
|
||||
Выводит IP-адреса и MAC-адреса в отсортированном по IP порядке.
|
||||
"""
|
||||
print("Доступные устройства в сети:")
|
||||
print("IP" + " " * 18 + "MAC")
|
||||
print(self.translations.gettext("Доступные устройства в сети:"))
|
||||
print(self.translations.gettext("IP") + " " * 18 + self.translations.gettext("MAC"))
|
||||
for client in sorted(clients, key=lambda x: x["ip"]):
|
||||
print(f"{client['ip']:<16} {client['mac']}")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue