<?php

require_once '/var/www/signals/geoip2.phar';

use MaxMind\Db\Reader;

// Obtenha o IP do visitante (se não passar o parâmetro ?ip, usa o IP do cliente)
$ip = $_GET['ip'] ?? $_SERVER['REMOTE_ADDR'];  // IP do visitante ou o IP passado via query string

// Validar o IP
if (!filter_var($ip, FILTER_VALIDATE_IP)) {
    echo json_encode(['error' => 'Invalid IP address provided']);
    exit;
}

// Carregar a base de dados GeoLite2-City (lembre-se de baixar o arquivo .mmdb)
$reader = new Reader('/var/lib/GeoIP/GeoLite2-City.mmdb');

try {
    // Obtenha os dados de geolocalização
    $record = $reader->get($ip);
    echo json_encode([
        'country' => $record['country']['iso_code'] ?? null,
        'region' => $record['subdivisions'][0]['iso_code'] ?? null,
        'city' => $record['city']['names']['en'] ?? null
    ]);
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['error' => 'GeoIP lookup failed', 'message' => $e->getMessage()]);
}
?>
