Что такое протокол IPv4?

Ответ

IPv4 (Internet Protocol version 4) — это четвёртая и основная версия интернет-протокола, используемая для адресации устройств в сетях на основе IP.

Ключевые характеристики:

  • Формат адреса: 32-битный (4 октета), записывается в десятичном виде с точками (например, 192.168.1.1).
  • Адресное пространство: Ограничено ~4.3 миллиардами уникальных адресов (2^32).
  • Решение проблемы нехватки: Широко используется NAT (Network Address Translation) и частные адресные диапазоны (например, 192.168.0.0/16).
  • Статус: Является доминирующим протоколом, но постепенно вытесняется IPv6 из-за исчерпания адресов.

Пример проверки валидности IPv4 на Python:

import re

def is_valid_ipv4(ip: str) -> bool:
    pattern = r'^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$'
    match = re.match(pattern, ip)
    if not match:
        return False
    # Проверяем, что каждый октет в диапазоне 0-255
    return all(0 <= int(octet) <= 255 for octet in match.groups())

print(is_valid_ipv4("192.168.1.1"))  # True
print(is_valid_ipv4("256.0.0.1"))    # False (октет > 255)
print(is_valid_ipv4("192.168.1"))    # False (не 4 октета)

Ответ 18+ 🔞

Давай я тебе про этот ваш IPv4 расскажу, а то народ безмозглый, блядь, в пизду, думает, что это какая-то магия. Сидит, тыкает в роутер, а там цифры какие-то, как будто это номер его квартиры в интернете.

Вот смотри, IPv4 — это, грубо говоря, старый-добрый, ёпта, способ сказать каждому твоему девайсу, где он в этой паутине сидит. Как почтовый адрес, только цифровой, блядь.

Что у него за фишки, блядь:

  • Адрес: Это четыре числа, через точку. Типа 192.168.1.1. Каждое число — от 0 до 255, не больше, а то пиздец, ничего не заработает. Представь, это как четыре октета, блядь, или четыре комнаты в квартире. Всего 32 бита, если ты в это врубаешься.
  • Сколько их всего: Ну, овердохуища, казалось бы — 4.3 миллиарда! Ан нет, блядь, их уже нихуя не осталось, все разобрали, как горячие пирожки. Интернет-то рос, как на дрожжах.
  • Как выкручивались: А выкручивались, сука, на NAT'е! Это такая хитрая жопа, когда у тебя дома десять устройств, а провайдер даёт один адрес на всех. Роутер всех их, блядь, прячет под одним номером, как мамаша непутёвых детей. И ещё придумали частные адреса, типа 192.168.xxx.xxx — их можно внутри сети плодить, как кроликов, но в большой интернет с ними не выйдешь.
  • Что сейчас: Он пока царь и бог, но его уже пинают под зад, потому что адресов нет. На смену ползёт IPv6, у которого адресов — волнение ебать, на каждый чих хватит.

А вот, смотри, как на Python'е проверить, не гонит ли тебе кто-то хуйню вместо адреса. Код не трогаю, он святой, блядь.

import re

def is_valid_ipv4(ip: str) -> bool:
    pattern = r'^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$'
    match = re.match(pattern, ip)
    if not match:
        return False
    # Проверяем, что каждый октет в диапазоне 0-255
    return all(0 <= int(octet) <= 255 for octet in match.groups())

print(is_valid_ipv4("192.168.1.1"))  # True
print(is_valid_ipv4("256.0.0.1"))    # False (октет > 255)
print(is_valid_ipv4("192.168.1"))    # False (не 4 октета)

Видишь? Если кто-то сунет 256.0.0.1 — это пизда, ошибка. Компьютер посмотрит и скажет: «Мудак, блядь, неправильно сообщили, а хуй проверишь?». Вот так вот, на хуй.