Изучение различных методов извлечения поддоменов с использованием функции strstr

Метод 1: базовая реализация strstr
Функция strstr — это широко используемая функция поиска строк в программировании на языке C. Вот простая реализация извлечения субдоменов из URL:

#include <stdio.h>
#include <string.h>
void extractSubdomains(const char* url) {
    const char* prefix = "://";
    const char* dot = ".";
    char* subdomain;
    subdomain = strstr(url, prefix);
    if (subdomain != NULL) {
        subdomain += strlen(prefix);
        while (subdomain != NULL) {
            subdomain = strstr(subdomain, dot);
            if (subdomain != NULL) {
                subdomain += strlen(dot);
                printf("Subdomain: %s\n", subdomain);
            }
        }
    }
}
int main() {
    const char* url = "https://www.example.com";
    extractSubdomains(url);
    return 0;
}

Метод 2: использование регулярных выражений
Регулярные выражения предоставляют мощный способ сопоставления и извлечения шаблонов в строках. Вот пример использования библиотеки PCRE (Perl-совместимые регулярные выражения):

#include <stdio.h>
#include <pcre.h>
void extractSubdomains(const char* url) {
    const char* pattern = "(?:https?://)?((?:[a-zA-Z0-9_-]+\\.)+\\w+)";
    int ovector[30];
    pcre* re;
    const char* error;
    int erroffset;
    re = pcre_compile(pattern, 0, &error, &erroffset, NULL);
    if (re != NULL) {
        int rc = pcre_exec(re, NULL, url, strlen(url), 0, 0, ovector, 30);
        if (rc > 0) {
            int i;
            for (i = 2; i < rc; i += 2) {
                int start = ovector[i];
                int end = ovector[i + 1];
                printf("Subdomain: %.*s\n", end - start, url + start);
            }
        }
        pcre_free(re);
    }
}
int main() {
    const char* url = "https://www.example.com";
    extractSubdomains(url);
    return 0;
}

Метод 3: использование библиотек анализа URL-адресов
Во многих языках программирования библиотеки анализа URL-адресов предоставляют удобные функции для извлечения различных компонентов URL-адреса, включая поддомены. Вот пример использования модуля Python urllib.parse:

from urllib.parse import urlparse
def extract_subdomains(url):
    parsed_url = urlparse(url)
    subdomains = parsed_url.hostname.split('.')[:-2]
    for subdomain in subdomains:
        print(f"Subdomain: {subdomain}")
url = "https://www.example.com"
extract_subdomains(url)