Демистификация геолокации Cloudflare: комплексное руководство по определению местоположения страны

В современном взаимосвязанном мире геолокация играет решающую роль в различных веб-приложениях. Это позволяет предприятиям персонализировать контент, предоставлять услуги с учетом местоположения и усиливать меры безопасности. Cloudflare, ведущая сеть доставки контента (CDN) и поставщик безопасности, предлагает мощные инструменты для сервисов на основе геолокации. В этой статье мы рассмотрим различные методы определения местоположения страны с помощью Cloudflare, а также приведем примеры кода.

Метод 1: HTTP-заголовки Cloudflare
Cloudflare добавляет HTTP-заголовки к проксируемым запросам, предоставляя ценную информацию о местонахождении посетителя. Заголовок «CF-IPCountry» содержит двухбуквенный код страны. Вот пример доступа к коду страны с помощью JavaScript:

const country = req.headers.get('CF-IPCountry');
console.log(country); // Output: US

Метод 2: работники Cloudflare
Workers Cloudflare позволяют выполнять собственный код JavaScript на границе сети Cloudflare. Вы можете использовать Workers для поиска геолокации с помощью API Cloudflare. Вот пример использования API fetchв сценарии Cloudflare Worker:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
  const response = await fetch('https://www.cloudflare.com/cdn-cgi/trace', {
    cf: {
      cacheEverything: false,
      cacheTtl: 0,
      // Additional Cloudflare options can be added here
    },
  });
  const data = await response.text();
  const country = data.match(/loc=([A-Z]{2})/)[1];
  return new Response(country, { status: 200 });
}

Метод 3: правила брандмауэра Cloudflare
Правила брандмауэра Cloudflare позволяют определять собственные правила на основе атрибутов посетителей. Вы можете создать правило брандмауэра, чтобы оспаривать или блокировать запросы из определенных стран. Вот пример правила брандмауэра, которое блокирует запросы из определенной страны:

# Cloudflare Firewall Rule
- action: block
  expression: ip.geoip.country eq "US"
  description: Block requests from the United States

Определение местоположения страны с помощью Cloudflare предлагает различные методы: от извлечения заголовков HTTP до использования рабочих процессов Cloudflare и правил брандмауэра. Эти методы позволяют веб-разработчикам создавать функции на основе геолокации, повышать меры безопасности и предоставлять услуги с учетом местоположения. Внедряя эти методы, компании могут предоставлять своим пользователям персонализированный опыт, обеспечивая при этом оптимальную производительность и защиту.