27
Окт

Шлём результаты OpenSpeedTest в Telegram bot

Простой скрипт отправки данных скорости OpenSpeedTest вам в телеграм бот

Для начала редактируете файл index.html

    // Save Data to a Database
        var OpenSpeedTestdb;
        var saveData = true;
        var saveDataURL = "https://hd.zp.ua/save.php?data=";

И сам файл скрипта save.php


<?php
declare(strict_types=1);

// === НАСТРОЙКИ ===
$botToken = 'ваш токен';
$chatId   = '45646876'; // ID куда отправлять результаты
$logFile  = __DIR__ . '/speedtest.log';  // путь к лог-файлу

function log_write(string $text): void {
    global $logFile;
    $line = '[' . date('Y-m-d H:i:s') . '] ' . $text . "\n";
    file_put_contents($logFile, $line, FILE_APPEND);
}

// Получаем данные запроса
$ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown';
$ua = $_SERVER['HTTP_USER_AGENT'] ?? 'unknown';
$dataRaw = file_get_contents('php://input');
$getData = json_encode($_GET);
$postData = json_encode($_POST);

log_write("Получены данные от {$ip} ({$ua}) → RAW: {$dataRaw} | GET: {$getData} | POST: {$postData}");

// Попытка парсинга RAW URL
$parsedParams = [];
if (preg_match('/https?:\/\/openspeedtest\.com\/results\/show\.php\?(.*)/', $dataRaw, $matches)) {
    parse_str(html_entity_decode($matches[1]), $parsedParams);


// Формируем красивое сообщение
$messageText = "📡 <b>OpenSpeedTest Results</b>\n\n";
$messageText .= "IP: <code>{$ip}</code>\n";
$messageText .= "UA: <code>{$ua}</code>\n\n";

if (!empty($parsedParams)) {
$messageText .= "📊 <b>Test Data</b>\n";
$messageText .= "⬇ Download: <b>{$parsedParams['d']} Mbps</b>\n";
$messageText .= "⬆ Upload: <b>{$parsedParams['u']} Mbps</b>\n";
$messageText .= "📶 Ping: <b>{$parsedParams['p']} ms</b>\n";
$messageText .= "🎯 Jitter: <b>{$parsedParams['j']} ms</b>\n";
$messageText .= "💾 Download Data: <b>{$parsedParams['dd']} MB</b>\n";
$messageText .= "💾 Upload Data: <b>{$parsedParams['ud']} MB</b>\n";
$messageText .= "🌐 User-Agent: <code>{$parsedParams['ua']}</code>\n";
} else {
$messageText .= "❌ Не удалось распарсить RAW данные.";
}

// Отправка в Telegram
$telegramUrl = "https://api.telegram.org/bot{$botToken}/sendMessage";
$ch = curl_init($telegramUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'chat_id' => $chatId,
'text' => $messageText,
'parse_mode' => 'HTML'
]);
$response = curl_exec($ch);
curl_close($ch);

log_write("Отправлено в Telegram: " . $response);
}
// Ответ клиенту
http_response_code(200);
echo 'OK';

Обратная связь

    The average number of adverse effects was 3. T max is 23 minutes in females and 32 minutes in males. What other drugs will affect doxercalciferol Viagra natural sin receta. Archived from the original on 2009-08-14.

    Talk to your doctor before using this form of cefadroxil if you have diabetes. What should I tell my healthcare team before starting CABLIVI? There is no FDA guidance on the use of Tetracycline (oral) with respect to specific gender populations https://www.apotheke-rezeptfreie.com/. Opper K, Uder S, Song K Development of Heterogeneous and Homogeneous Platforms for Rapid Analysis of DNA-Protein Interactions.

    Contact Us