mirror of
https://github.com/Horizontal42/netsleuth.git
synced 2026-11-10 23:52:04 +03:00
style: отформатировать validator.py с black
This commit is contained in:
parent
f99a06985e
commit
34a0e193ac
1 changed files with 25 additions and 29 deletions
|
|
@ -9,11 +9,11 @@ import typer
|
||||||
|
|
||||||
# Запрещённые префиксы (private, reserved, multicast)
|
# Запрещённые префиксы (private, reserved, multicast)
|
||||||
FORBIDDEN_PREFIXES: Final = [
|
FORBIDDEN_PREFIXES: Final = [
|
||||||
"127.", # localhost
|
"127.", # localhost
|
||||||
"0.", # current network
|
"0.", # current network
|
||||||
"10.", # private class A
|
"10.", # private class A
|
||||||
"192.168.", # private class C
|
"192.168.", # private class C
|
||||||
"172.16.", # private class B (начало диапазона)
|
"172.16.", # private class B (начало диапазона)
|
||||||
"172.17.",
|
"172.17.",
|
||||||
"172.18.",
|
"172.18.",
|
||||||
"172.19.",
|
"172.19.",
|
||||||
|
|
@ -29,26 +29,26 @@ FORBIDDEN_PREFIXES: Final = [
|
||||||
"172.29.",
|
"172.29.",
|
||||||
"172.30.",
|
"172.30.",
|
||||||
"172.31.",
|
"172.31.",
|
||||||
"224.", # multicast
|
"224.", # multicast
|
||||||
"240.", # reserved
|
"240.", # reserved
|
||||||
"::1", # IPv6 localhost
|
"::1", # IPv6 localhost
|
||||||
"fe80:", # IPv6 link-local
|
"fe80:", # IPv6 link-local
|
||||||
"fc00:", # IPv6 unique local
|
"fc00:", # IPv6 unique local
|
||||||
"fd00:", # IPv6 unique local
|
"fd00:", # IPv6 unique local
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def validate_target(value: str) -> str:
|
def validate_target(value: str) -> str:
|
||||||
"""Валидировать целевой адрес (target).
|
"""Валидировать целевой адрес (target).
|
||||||
|
|
||||||
Проверяет, что адрес не является private/reserved IP.
|
Проверяет, что адрес не является private/reserved IP.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
value: IP-адрес или hostname для проверки
|
value: IP-адрес или hostname для проверки
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Оригинальное значение если валидно
|
Оригинальное значение если валидно
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
typer.BadParameter: Если адрес запрещён
|
typer.BadParameter: Если адрес запрещён
|
||||||
"""
|
"""
|
||||||
|
|
@ -64,52 +64,48 @@ def validate_target(value: str) -> str:
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# Не IP-адрес (hostname), проверяем что это не выглядит как private IP
|
# Не IP-адрес (hostname), проверяем что это не выглядит как private IP
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Для hostnames - простая проверка что не начинается с цифр (не похоже на IP)
|
# Для hostnames - простая проверка что не начинается с цифр (не похоже на IP)
|
||||||
# Hostnames могут содержать буквы, цифры, дефисы и точки
|
# Hostnames могут содержать буквы, цифры, дефисы и точки
|
||||||
if value[0].isdigit():
|
if value[0].isdigit():
|
||||||
# Похоже на IP но не распарсился - возможно невалидный, но не блокируем
|
# Похоже на IP но не распарсился - возможно невалидный, но не блокируем
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
def validate_bind_address(value: str) -> str:
|
def validate_bind_address(value: str) -> str:
|
||||||
"""Валидировать адрес для привязки (--my-server).
|
"""Валидировать адрес для привязки (--my-server).
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
value: IP-адрес для проверки
|
value: IP-адрес для проверки
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Оригинальное значение если валидно
|
Оригинальное значение если валидно
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
typer.BadParameter: Если адрес невалиден
|
typer.BadParameter: Если адрес невалиден
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
ipaddress.ip_address(value)
|
ipaddress.ip_address(value)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise typer.BadParameter(
|
raise typer.BadParameter(f"'{value}' is not a valid IP address for --my-server")
|
||||||
f"'{value}' is not a valid IP address for --my-server"
|
|
||||||
)
|
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
def validate_port(value: int) -> int:
|
def validate_port(value: int) -> int:
|
||||||
"""Валидировать номер порта.
|
"""Валидировать номер порта.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
value: Номер порта
|
value: Номер порта
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Номер порта если валиден
|
Номер порта если валиден
|
||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
typer.BadParameter: Если порт вне диапазона
|
typer.BadParameter: Если порт вне диапазона
|
||||||
"""
|
"""
|
||||||
if not (1 <= value <= 65535):
|
if not (1 <= value <= 65535):
|
||||||
raise typer.BadParameter(
|
raise typer.BadParameter(f"Port {value} must be between 1 and 65535")
|
||||||
f"Port {value} must be between 1 and 65535"
|
|
||||||
)
|
|
||||||
return value
|
return value
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue