const express = require('express'); const unblocker = require('unblocker'); const basicAuth = require('basic-auth'); const http = require('http'); const faker = require('faker'); const { Transform } = require('stream'); const app = express(); const MAIN_IP = '0.0.0.0'; const PROXY_PORT = 7860; const google_analytics_id = process.env.GA_ID || null; let allowAllRequests = false; // Contadores para las solicitudes y estados let requestCount = 0; const statusCounts = {}; // Función para generar una IP residencial aleatoria con Faker function generateRandomResidentialIP() { return faker.internet.ip(); } // Función para incrementar el contador de solicitudes function incrementRequestCount() { requestCount++; } // Función para incrementar el contador de estados function incrementStatusCount(statusCode) { statusCounts[statusCode] = (statusCounts[statusCode] || 0) + 1; } // Middleware para contar las solicitudes y los estados app.use((req, res, next) => { incrementRequestCount(); next(); }); // Middleware para evitar la detección de spam (anti-spam detection) app.use((req, res, next) => { // Modificar headers para evitar restricciones de CORS res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // Permitir que las solicitudes OPTIONS pasen sin procesar if (req.method === 'OPTIONS') { res.sendStatus(200); } else { next(); } }); // Middleware para evitar la detección de bloqueo de sitios (anti block sites detection) app.use((req, res, next) => { // Modificar headers para evitar la detección de bloqueo de sitios res.setHeader('Accept-Language', 'en-US,en;q=0.9'); next(); }); // Middleware para evitar la detección de fraudes en sitios (anti fraud sites detection) app.use((req, res, next) => { // Modificar headers para evitar la detección de fraudes en sitios res.setHeader('Referer', 'https://www.google.com/'); next(); }); // Middleware para evitar la detección de proxy (anti proxy detection) app.use((req, res, next) => { // Modificar headers para evitar la detección de proxy res.setHeader('Via', '1.1 example.com'); next(); }); // Middleware para realizar solicitudes de manera incógnita/anónima function incognitoMode(req, res, next) { // Modificar headers para realizar solicitudes de manera incógnita req.headers['User-Agent'] = faker.internet.userAgent(); req.headers['X-Forwarded-For'] = generateRandomResidentialIP(); next(); } // Middleware para resolver el captcha de Google function solveGoogleCaptcha(req, res, next) { // Detectar la presencia del captcha de Google y eliminarlo si se detecta if (res.getHeader('content-type') && res.getHeader('content-type').includes('text/html')) { const data = []; res.on('data', chunk => { data.push(chunk); }); res.on('end', () => { let html = Buffer.concat(data).toString(); // Remover el captcha de Google si se detecta html = html.replace(/
Total Requests: ${requestCount}
Status Counts: