Php dapatkan negara dari ip

Anda dapat menggunakan pustaka curl bawaan untuk memanggil API geolokasi IP dalam skrip PHP. Berikut program PHP lengkapnya


<?php

class IPV4
{

    public function handle(array $request)
    {
        $data = $this->parse_argv($request);
        try {
            // build required data
            $formData = http_build_query([
                'api_key' => '<YOUR_UNIQUE_API_KEY>',
                'ip_address' => $data[0]  
            ]);
            // make curl request to abstractapi.com to get ip information
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://ipgeolocation.abstractapi.com/v1/?" . $formData,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    "accept: application/json",
                    "cache-control: no-cache",
                    "content-type: application/json",
                ),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);
            curl_close($curl);
            if ($err) {
                echo $err;
                exit;
            } else {
                $response = json_decode($response, true);
                echo 'Country: '.$response["country"];
                exit;
            }
        } catch (\Exception $e) {
            echo $e->getMessage();
            exit;
        }
    }


    private function parse_argv(array $argv): array
    {

        $request = [];
        foreach ($argv as $i => $a) {
         
            if (!$i) {
                continue;
            }   

            $isValid = filter_var($a, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);

            if($isValid) {
                array_push($request,$a);
            } else {
                echo "Invalid IPv4 Format";
                exit;
            }
           
        }

        return array_values($request);
    }

}

$ipv4 = new IPV4();
$ipv4->handle($argv);

Copy the code and replace the placeholder with your API key before saving the file. 

Kode ini menerima alamat IP IPv4 dan memvalidasinya menggunakan metode validasi fungsi filter_var( ) php bawaan

Buka jendela terminal baris perintah dan jalankan skrip PHP dengan alamat IP yang valid

Php dapatkan negara dari ip

Anda dapat mencoba dengan alamat IP valid lainnya untuk mendapatkan nama negara. Anda juga dapat mencoba dengan alamat yang tidak valid. Script harus menangkapnya

Php dapatkan negara dari ip

Mendapatkan Negara dari Alamat IP IPv6

Jika pengunjung website Anda memiliki alamat IPv6, tidak ada yang perlu dikhawatirkan. API geolokasi IP juga dapat mengekstrak nama negara dari alamat IPv6

Berikut adalah skrip PHP yang dimodifikasi untuk memvalidasi dan mengekstraksi negara dari alamat IP IPv6


<?php

class IPV6
{

    public function handle(array $request)
    {
        $data = $this->parse_argv($request);
        
        try {
            // build required data
            $formData = http_build_query([
                'api_key' => ‘<YOUR_UNIQUE_API_KEY>',
                'ip_address' => $data[0]  
            ]);
            // make curl request to abstractapi.com to get ip information
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://ipgeolocation.abstractapi.com/v1/?" . $formData,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    "accept: application/json",
                    "cache-control: no-cache",
                    "content-type: application/json",
                ),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);
            curl_close($curl);
            if ($err) {
                echo $err;
                exit;
            } else {
                $response = json_decode($response, true);
                echo 'Country: '.$response["country"];
                exit;
            }
        } catch (\Exception $e) {
            echo $e->getMessage();
            exit;
        }
    }


    private function parse_argv(array $argv): array
    {

        $request = [];
        foreach ($argv as $i => $a) {
         
            if (!$i) {
                continue;
            }   

            $isValid = filter_var($a, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);

            if($isValid) {
                array_push($request,$a);
            } else {
                echo "Invalid IPv6 Format";
                exit;
            }
           
        }

        return array_values($request);
    }
}

$ipv6 = new IPV6();
$ipv6->handle($argv);
_

Ganti kunci API, simpan file dan jalankan

Php dapatkan negara dari ip

Argumen validasi filter_var( ) sekarang diperbarui untuk memeriksa format IPv6 yang valid. Oleh karena itu, skrip PHP ini juga akan menangkap alamat IP yang tidak valid

Php dapatkan negara dari ip

Dapatkan Detail Lokal Khusus Negara dari Alamat IP

API tidak terbatas pada nama negara. Itu dapat mengekstraksi banyak detail lokal tentang lokasi geografis alamat IP.  

Berikut ini sekilas respons API JSON yang diambil dari dokumentasi

Php dapatkan negara dari ip

Anda dapat melihat bahwa API juga dapat menemukan detail negara, seperti kode negara, hingga nama kawasan dan kota untuk setiap alamat IP.  

Mari cari tahu cara mengekstrak detail ini dari respons API di PHP


<?php

class Country
{

    public function handle(array $request)
    {
        $data = $this->parse_argv($request);
        try {
            // build required data
            $formData = http_build_query([
                'api_key' => '<YOUR_UNIQUE_API_KEY>',
                'ip_address' => $data[0]  
            ]);
            // make curl request to abstractapi.com to get ip information
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://ipgeolocation.abstractapi.com/v1/?" . $formData,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    "accept: application/json",
                    "cache-control: no-cache",
                    "content-type: application/json",
                ),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);
            curl_close($curl);
            if ($err) {
                echo $err;
                exit;
            } else {
                $response = json_decode($response, true);
                echo '
                    IP Address: '.$response['ip_address'].'
                    Country: '. $response['country'].' 
                    State: '.$response['region'].'
                    City: '.$response['city'].'
                ';
            }
        } catch (\Exception $e) {
            echo $e->getMessage();
            exit;
        }
    }


    private function parse_argv(array $argv): array
    {

        $request = [];
        foreach ($argv as $i => $a) {
         
            if (!$i) {
                continue;
            }   

            $isValid = filter_var($a, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE);

            if($isValid) {
                array_push($request,$a);
            } else {
                echo "Invalid IP Format";
                exit;
            }
           
        }

        return array_values($request);
    }
}

$ipLoc = new Country();
$ipLoc->handle($argv);

Php dapatkan negara dari ip

Dapatkan Detail Global Khusus Negara dari Alamat IP

Jika Anda mencermati dokumentasi API geolokasi IP, itu juga mengekstrak detail global tentang negara, seperti benua, zona waktu, dan koordinat geolokasi

Mari kita lihat cara mengekstrak parameter ini dari respons API


<?php

class Geographic
{

    public function handle(array $request)
    {
        $data = $this->parse_argv($request);
        try {
            // build required data
            $formData = http_build_query([
                'api_key' => '<YOUR_UNIQUE_API_KEY>',
                'ip_address' => $data[0]  
            ]);
            // make curl request to abstractapi.com to get ip information
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://ipgeolocation.abstractapi.com/v1/?" . $formData,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    "accept: application/json",
                    "cache-control: no-cache",
                    "content-type: application/json",
                ),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);
            curl_close($curl);
            if ($err) {
                echo $err;
                exit;
            } else {
                $response = json_decode($response, true);
                echo '
                    IP Address: ' . $response['ip_address'] . '
                    Continent: ' . $response['continent'] . '
                    Longitude: '.$response['longitude']. '
                    Latitude: ' . $response['latitude'] . '
                ';
            }
        } catch (\Exception $e) {
            echo $e->getMessage();
            exit;
        }
    }


    private function parse_argv(array $argv): array
    {

        $request = [];
        foreach ($argv as $i => $a) {
         
            if (!$i) {
                continue;
            }   

            $isValid = filter_var($a, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE);

            if($isValid) {
                array_push($request,$a);
            } else {
                echo "Invalid IP Format";
                exit;
            }
           
        }

        return array_values($request);
    }
}

$ipGlo = new Geographic();
$ipGlo->handle($argv);

Php dapatkan negara dari ip

Dapatkan Negara untuk Beberapa Alamat IP

API ini berfungsi untuk beberapa alamat IP. Jadi, alih-alih menyelidiki setiap alamat IP pengunjung dengan panggilan API terpisah, Anda mungkin ingin membuat laporan semua negara pengunjung dari log data IP server web Anda

Anda dapat mencapai format laporan sesuai kebutuhan Anda dengan mengirimkan beberapa alamat IP ke permintaan API. Misalnya, berikut adalah cara melakukannya untuk laporan berformat CSV dari alamat IP ke nama negara


<?php

class MultiIP
{

    public function handle(array $request)
    {
        $data = $this->parse_argv($request);
        
        $info = '';

        foreach ($data as $key => $value) {
            $info .= $this->getDetails($value);
        }

       echo $info;
        
    }


    private function getDetails(string $ip)
    {
        try {
            // build required data
            $formData = http_build_query([
                'api_key' => '<YOUR_UNIQUE_API_KEY>',
                'ip_address' => $ip  
            ]);
            // make curl request to abstractapi.com to get ip information
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://ipgeolocation.abstractapi.com/v1/?" . $formData,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    "accept: application/json",
                    "cache-control: no-cache",
                    "content-type: application/json",
                ),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);
            curl_close($curl);
            if ($err) {
                echo $err;
                exit;
            } else {
                $response = json_decode($response, true);
                return $ip . ',' . $response['country'] . ',' . $response['continent'] . PHP_EOL;
                exit;
            }
        } catch (\Exception $e) {
            echo $e->getMessage();
            exit;
        }

    }


    private function parse_argv(array $argv): array
    {

        $request = [];
        foreach ($argv as $i => $a) {
         
            if (!$i) {
                continue;
            }   

            $isValid = filter_var($a, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE);

            if($isValid) {
                array_push($request,$a);
            } else {
                echo "Invalid IP Format";
                exit;
            }
           
        }

        return array_values($request);
    }
}

$ip = new MultiIP();
$ip->handle($argv);
_

Php dapatkan negara dari ip

Seperti yang Anda lihat, keluaran dari skrip PHP ini adalah laporan berformat CSV dari alamat IP pengunjung yang dipetakan ke nama negara dan benua

Berdasarkan kebutuhan Anda, Anda dapat memodifikasi format laporan untuk mengirimkan catatan singkat dengan kode negara, kode wilayah, dan kode benua, bersama dengan data IP

Bisakah Anda Menemukan Nama Negara dari Alamat IP?

Anda dapat menemukan nama negara dari alamat IP, asalkan alamat IP bersifat publik dan dapat dialamatkan secara global. Selain itu, Anda juga dapat menemukan nama kota dan wilayah alamat IP di negara tersebut. Selain itu, dengan bantuan API Geolokasi IP Abstrak, dimungkinkan untuk mendapatkan detail ini bersama dengan zona waktu, ISP, dan koordinat lokasi informasi alamat IP tertentu

Bagaimana menemukan Negara Alamat IP?

Tidak ada cara langsung untuk mendekode nama negara dari alamat IP. Namun, dimungkinkan untuk mengakses database yang melacak detail alokasi rentang alamat IP di semua ISP yang beroperasi di berbagai geografi. Namun, dengan bantuan API Geolokasi IP Abstrak, dimungkinkan untuk mendapatkan informasi ini secara instan. API geolokasi IP mempertahankan hubungan jangka panjang dengan ISP dan penyedia data lainnya untuk menyediakan data khusus negara yang sangat akurat dan konsisten untuk alamat IP. Selain nama negara, API juga menawarkan informasi berharga tentang lokasi alamat IP, seperti wilayah, kota, dan koordinat lokasi.

Bagaimana cara mendapatkan negara dari alamat IP di php?

Fungsi geoip_country_name_by_name() akan mengembalikan nama lengkap negara sesuai dengan nama host atau alamat IP.

Bagaimana cara mendapatkan negara berdasarkan alamat IP?

Anda juga dapat menggunakan situs web pihak ketiga seperti Geobytes atau Dnsstuff untuk mencari alamat IP . Pencarian whois akan mengungkapkan nama ISP yang memiliki alamat IP tersebut, dan negara asalnya. Jika beruntung, Anda mungkin juga menemukan kota asalnya.

Bagaimana cara mendapatkan kode negara di php?

geoip_country_code_by_name() adalah fungsi bawaan dalam PHP yang membantu menghasilkan kode negara dua huruf (Setiap negara diberikan dua huruf . Misalnya. AS untuk Amerika Serikat). Fungsi mengambil nama host atau Alamat IP sebagai argumen dan menghasilkan kode negara dua huruf.

Bagaimana cara mendapatkan nama kota dari alamat IP di php?

php $ip = '168. 192. 0. 1'; . //ip-api. com/php/'. $ip)); . $query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip)); if($query && $query['status'] == 'success') { echo 'Your City is ' .