WEB

Как проверить IP-адрес в Python

В мире сетевых приложений и программирования правильная обработка и проверка IP-адресов играет ключевую роль. В этой статье мы покажем два способа, как проверить IP-адрес с использованием языка Python: при помощи модулей socket и ipaddress.

Давайте начнем!

Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python.

Использование модуля socket

В языке Python имеется множество модулей или библиотек, встроенных в язык. Одним из них является модуль socket.

Вот как можно проверить IP-адрес с помощью модуля socket:

import socket

try:
    socket.inet_aton(ip_address)
    print(f"{ip_address is valid")
except socket.error:
    print(f"{ip_address} is not valid!")

К сожалению, это работает не со всеми допустимыми IP-адресами. Например, не будут работать варианты IPv6, только IPv4.

Можно использовать функцию socket.inet_pton(socket_family, address) и указать, какую версию IP-адреса вы хотите использовать, что может сработать. Однако функция inet_pton() доступна только под Unix.

К счастью, есть лучший способ!

Использование модуля ipaddress

В стандартную библиотеку Python входит модуль ipaddress. Он доступен для использования на всех платформах и может применяться для проверки IPv4 и IPv6.

Вот как можно проверить IP-адрес с помощью встроенного в Python модуля ipaddress:

import ipaddress

def ip_address_validator(ip):
    try:
        ip_obj = ipaddress.ip_address(ip)
        print(f"{ip} is a valid IP address")
    except ValueError:
        print(f"ERROR: {ip} is not a valid IP address!")
        
ip_address_validator("192.168.5.1")

Модуль ipaddress делает проверку IP-адресов еще более простой, чем модуль socket!

Подведение итогов

Язык программирования Python предоставляет несколько модулей, при помощи которых можно проверить IP-адрес. Вы можете использовать либо модуль socket, либо модуль ipaddress. Модуль socket имеет некоторые ограничения на платформах, отличных от Unix. Поэтому модуль ipaddress, который можно использовать на любой платформе, предпочтительнее.

Примечание. Вероятно, можно найти и регулярное выражение для проверки IP-адреса. Однако использование модуля ipaddress проще и легче для отладки.

Перевод статьи «How to Validate an IP Address in Python».

alexander

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago