training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как сделать проверку по ip адресу с учётом префикса ipaddress Python

Создано: 21 октября 2025Автор: Егор Астапов23 просмотраСложность: легкий

Как проверить IP с учётом префикса? Мой скрипт позволяет вам не перебирать все возможные IP по маске. Можно сделать большой кортеж и производит сверку одного IP c кортежем, но есть короткое решение.

В адресе 101.100.100.100/26 часть строки /26 — это суффикс, указывающий на маску подсети (или префикс). Он обозначает количество битов в адресе, которые используются для идентификации сети. Вам нужно написать get_ip метод для получения IP.

 import ipaddress

def check_ip_in_network(ip_clients, ip_to_check):
for client in ip_clients:
# Создаём сеть из клиента
try:
network = ipaddress.ip_network(client, strict=True)
except ValueError as e:
print("IP не является действительным сетевым адресом:", client)
print("Ошибка:", e)
return False
# Проверяем, если IP попадает в эту сеть
if ipaddress.ip_address(ip_to_check) in network:
print(f"{ip_to_check} находится в сети {client}")
return True
print(f"{ip_to_check} не принадлежит ни одной из указанных сетей.")
return False

ip_clients = (
"101.100.100.100/26",
"102.100.100.100/26",
)

ip_client = get_ip()
if not check_ip_in_network(ip_clients, ip_client):
print("доступ для вашего ip запрещён!")
return False

print("скрипт работает!")

Комментарии

реклама