<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>
Script de Bloqueo de Acceso por IP con Alerta Visual
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.
Ú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
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.