Script de Bloqueo de Acceso por IP con Alerta Visual


<script>
(function () {
    const maxVisits = 5; // Número máximo de visitas permitidas por hora
    const blockDuration = 60 * 60 * 1000; // Duración del bloqueo en milisegundos (1 hora)
    const storageKey = 'visitInfo';

    // Función para obtener la IP del usuario
    async function getUserIP() {
        try {
            const response = await fetch('https://api.ipify.org?format=json');
            const data = await response.json();
            return data.ip;
        } catch (error) {
            console.error('Error al obtener la IP:', error);
            return null;
        }
    }

    // Función para obtener el almacenamiento de visitas del navegador
    function getVisitData() {
        const data = localStorage.getItem(storageKey);
        return data ? JSON.parse(data) : {};
    }

    // Función para guardar datos de visitas en el navegador
    function saveVisitData(data) {
        localStorage.setItem(storageKey, JSON.stringify(data));
    }

    // Función para bloquear el acceso
    function blockAccess() {
        document.body.innerHTML = `
            <div style="display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #f8d7da; color: #721c24;">
                <div style="text-align: center; padding: 20px; border: 2px solid #f5c6cb; background: #f1f1f1; border-radius: 10px;">
                    <div style="font-size: 50px; color: #dc3545; margin-bottom: 20px;">
                        ⚠️
                    </div>
                    <h1 style="font-size: 24px; color: #721c24;">¡Acceso Bloqueado!</h1>
                    <p style="font-size: 18px; color: #721c24;">Has alcanzado el límite de visitas. Intenta de nuevo en 1 hora.</p>
                </div>
            </div>
        `;
    }

    // Función principal para gestionar visitas y bloqueos
    async function manageVisits() {
        const userIP = await getUserIP();
        if (!userIP) return; // Si no se obtiene la IP, se detiene el script

        const visitData = getVisitData();
        const currentTime = Date.now();

        // Inicializa los datos de la IP si no existen
        if (!visitData[userIP]) {
            visitData[userIP] = { visits: 0, blockedUntil: 0 };
        }

        // Si la IP está bloqueada y el bloqueo no ha expirado
        if (visitData[userIP].blockedUntil > currentTime) {
            blockAccess();
            return;
        }

        // Incrementa el contador de visitas
        visitData[userIP].visits++;

        // Si las visitas superan el límite, se bloquea por 1 hora
        if (visitData[userIP].visits > maxVisits) {
            visitData[userIP].blockedUntil = currentTime + blockDuration;
            saveVisitData(visitData);
            blockAccess();
        } else {
            // Guarda los datos actualizados
            saveVisitData(visitData);
        }
    }

    manageVisits();
})();
</script>

    

Descripción:

Este script permite limitar el acceso a tu sitio web a usuarios que visitan más de 5 veces en una hora desde la misma dirección IP. Cuando se alcanza el límite de visitas, el acceso al sitio se bloquea temporalmente durante 1 hora y se muestra un mensaje de alerta visual en el centro de la pantalla, utilizando colores de advertencia (rojo y amarillo) y un ícono llamativo. Esta solución es ideal para reducir visitas no deseadas, controlar el tráfico abusivo y mejorar la seguridad de tu sitio web en plataformas como Shopify y WordPress.

Modo de Uso:

  1. Implementación:
    • En WordPress:
      1. Instala un plugin como Insert Headers and Footers.
      2. Inserta el script en la sección de Scripts en el Header.
    • En Shopify:
      1. Ve a Online Store > Themes > Actions > Edit Code.
      2. Abre el archivo theme.liquid o header.liquid.
      3. Pega el script antes del cierre de la etiqueta </head>.
  2. Personalización:
    • Puedes ajustar el número máximo de visitas y la duración del bloqueo modificando las variables maxVisits (visitas permitidas) y blockDuration (duración del bloqueo en milisegundos) en el script.
  3. Funcionamiento:
    • El script obtiene la IP del visitante utilizando una API externa.
    • Controla el número de visitas a través de localStorage en el navegador del usuario.
    • Si el número de visitas supera el límite permitido, el acceso se bloquea y se muestra un mensaje de alerta en el centro de la página.
  4. Restablecimiento del Acceso:
    • Después de 1 hora desde el bloqueo, el usuario podrá acceder nuevamente al sitio.

Este script es una forma sencilla y efectiva de gestionar el acceso a tu sitio web, brindando control adicional sobre el tráfico de usuarios y mejorando la experiencia general al limitar visitas excesivas.

No se han encontrado resultados.

Únete a nuestra comunidad de los vendedores de Facebook

Únete a nuestra comunidad de los vendedores de Facebook

Reserve una llamada con nosotros para comenzar

__wf_reserved_heredar
Reserva una llamada

Somos una agencia de marketing que ofrece soluciones publicitarias completas, incluyendo perfiles de Facebook, Facebook Pages y Business Manager, para garantizar que tu publicidad nunca se detenga.

Instagram
YouTube
Telegram
Discord