Сетевые данные¶
В этом разделе описаны встроенные паттерны для генерации сетевых данных.
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.