Перейти к содержанию

Сетевые данные

В этом разделе описаны встроенные паттерны для генерации сетевых данных.

NetworkPatterns

Сетевые идентификаторы (IP, MAC, Hostname, Port).

ipv4 = r"^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}$"
ipv6 = r"^([0-9a-fA-F]{4}:){7}[0-9a-fA-F]{4}$"
mac_address = r"^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$"
hostname = r"^[a-z0-9-]{3,15}$"
port = r"^(?:[1-9]\d{0,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$"

WebPatterns

Веб-данные (UUID, Домены, URL).

uuid = r"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
domain_lvl_one = r"^(com|net|org|ru|io|gov)$"
domain_lvl_two = r"^[a-z]{3,10}$"
url = r"^https?://[a-z]{3,10}\.[a-z]{2,3}/[a-z0-9]{5,10}$"

Пример использования

from fucktar.generator import BasePattern
from fucktar.config import PatternConfig
from fucktar.default_patterns.network import NetworkPatterns, WebPatterns

class NetworkDataPatterns(BasePattern[NetworkData]):
    ipv4 = NetworkPatterns.ipv4
    ipv6 = NetworkPatterns.ipv6
    mac_address = NetworkPatterns.mac_address
    hostname = NetworkPatterns.hostname
    port = NetworkPatterns.port
    uuid = WebPatterns.uuid
    url = WebPatterns.url

    pattern_config = PatternConfig(
        scope="network",
        unique_fields=["ipv4", "mac_address", "uuid"]
    )

Особенности паттернов

IPv4

Паттерн генерирует корректные IPv4 адреса в формате 0.0.0.0 - 255.255.255.255.

IPv6

Паттерн генерирует упрощенные IPv6 адреса в формате xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx.

MAC-адрес

Паттерн генерирует MAC-адреса в формате xx:xx:xx:xx:xx:xx.

Hostname

Паттерн генерирует имена хостов длиной от 3 до 15 символов, содержащих только буквы в нижнем регистре, цифры и дефисы.

Port

Паттерн генерирует корректные номера портов в диапазоне 1-65535.

UUID

Паттерн генерирует UUID версии 4 в стандартном формате xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.

URL

Паттерн генерирует упрощенные URL в формате http(s)://hostname.domain/path.