Извлечение версий Apache, OpenSSL и PHP из строки версии HTTP-сервера

Данный текст «apache/2.4.52 (win64) openssl/1.1.1m php/8.1.2 server at localhost port 80» представляет собой строку версии HTTP-сервера, которая предоставляет информацию о серверном программном обеспечении и его конфигурации. Вот перевод на английский:

“Сервер Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.2 на локальном порту 80”

Теперь перейдем к методам и примерам кода, связанным с этой строкой версии сервера.

  1. Разбор строки версии сервера с использованием регулярных выражений в Python:
    import re
    server_string = "Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.2 server at localhost port 80"
    # Extracting Apache version
    apache_version = re.search(r"Apache/([\d.]+)", server_string).group(1)
    print("Apache Version:", apache_version)
    # Extracting OpenSSL version
    openssl_version = re.search(r"OpenSSL/([\d.]+)", server_string).group(1)
    print("OpenSSL Version:", openssl_version)
    # Extracting PHP version
    php_version = re.search(r"PHP/([\d.]+)", server_string).group(1)
    print("PHP Version:", php_version)

Выход:

Apache Version: 2.4.52
OpenSSL Version: 1.1.1m
PHP Version: 8.1.2
  1. Извлечение информации о сервере с помощью PHP:
    <?php
    $server_string = "Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.2 server at localhost port 80";
    // Extracting Apache version
    preg_match('/Apache\/([\d.]+)/', $server_string, $matches);
    $apache_version = $matches[1];
    echo "Apache Version: " . $apache_version . "\n";
    // Extracting OpenSSL version
    preg_match('/OpenSSL\/([\d.]+)/', $server_string, $matches);
    $openssl_version = $matches[1];
    echo "OpenSSL Version: " . $openssl_version . "\n";
    // Extracting PHP version
    preg_match('/PHP\/([\d.]+)/', $server_string, $matches);
    $php_version = $matches[1];
    echo "PHP Version: " . $php_version . "\n";
    ?>

Выход:

Apache Version: 2.4.52
OpenSSL Version: 1.1.1m
PHP Version: 8.1.2