<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>IP Geolocation</title>
</head>
<body>
    <h1>IP Geolocation</h1>

    <form method="POST" action="">
        <label for="ip">Masukkan IP Address:</label>
        <input type="text" id="ip" name="ip" required>
        <button type="submit">Cek Lokasi</button>
    </form>

    <?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['ip'])) {
        $ipAddress = $_POST['ip'];

        // Fungsi untuk mendapatkan geolokasi IP menggunakan ip-api.com
        function getGeolocation($ip) {
            // URL API ip-api dengan parameter IP
            $url = "http://ip-api.com/json/{$ip}";

            // Mengambil data dari API
            $response = file_get_contents($url);
            
            // Mengubah JSON ke array PHP
            $data = json_decode($response, true);

            // Mengecek apakah hasilnya berhasil atau tidak
            if ($data['status'] == 'success') {
                return $data;  // Mengembalikan data lokasi
            } else {
                return false; // Mengembalikan false jika gagal
            }
        }

        // Ambil data lokasi berdasarkan IP
        $locationData = getGeolocation($ipAddress);

        if ($locationData) {
            // Koordinat latitude dan longitude
            $latitude = $locationData['lat'];
            $longitude = $locationData['lon'];
            
            // Tampilkan hasil
            echo "<h2>Hasil Geolokasi untuk IP: {$ipAddress}</h2>";
            echo "<ul>";
            echo "<li><strong>IP:</strong> " . $ipAddress . "</li>";
            echo "<li><strong>ASN:</strong> " . $locationData['as'] . "</li>";
            echo "<li><strong>Negara:</strong> " . $locationData['country'] . "</li>";
            echo "<li><strong>Kode Negara:</strong> " . $locationData['countryCode'] . "</li>";
            echo "<li><strong>Negara Bagian:</strong> " . $locationData['regionName'] . "</li>";
            echo "<li><strong>Kode Negara Bagian:</strong> " . $locationData['region'] . "</li>";
            echo "<li><strong>Kota:</strong> " . $locationData['city'] . "</li>";
            echo "<li><strong>Kode Pos:</strong> " . $locationData['zip'] . "</li>";
            echo "<li><strong>Zona Waktu:</strong> " . $locationData['timezone'] . "</li>";
            echo "<li><strong>Penyedia Layanan:</strong> " . $locationData['isp'] . "</li>";
            echo "<li><strong>Perusahaan:</strong> " . $locationData['org'] . "</li>";
            echo "<li><strong>Koordinat LatLong:</strong> {$latitude}, {$longitude}</li>";
            echo "<li><strong><a href='https://www.google.com/maps?q={$latitude},{$longitude}' target='_blank'>Google Maps</a></strong></li>";
            echo "</ul>";
        } else {
            echo "<p>Lokasi tidak ditemukan untuk IP: {$ipAddress}</p>";
        }
    }
    ?>
</body>
</html>