¿Cómo obtener la geolocalización usando PHP-cURL desde la dirección IP?

La geolocalización se refiere a la identificación de la ubicación geográfica de un usuario o dispositivo informático. 

En este artículo, crearemos una página web donde el usuario puede ingresar la dirección IP de cualquier dispositivo, y luego el servidor proporcionará la geolocalización de la dirección IP obteniendo los siguientes detalles utilizando la API de geolocalización de IP.

  • Nombre del continente
  • Nombre del país
  • Código alfa-2 del país
  • Código alfa-3 del país
  • Código numérico del país
  • Código de prefijo de llamada internacional del país
  • Código de moneda
  • Latitud
  • Longitud

Acercarse:

  • Llame a la API a través de una solicitud HTTP GET usando cURL en PHP.
  • Convierta la respuesta API JSON en una array usando la función PHP json_decode() .
  • Recuperar datos de IP de la respuesta de la API.

Ejemplo: el siguiente código obtiene la ubicación de la dirección IP usando PHP cURL.

PHP

<?php 
  
if(isset($_POST['submit']))
{
  
    $userIP = $_POST['ip']; 
   
    $apiURL = 'https://api.ipgeolocationapi.com/geolocate/'.$userIP;  
  
    $ch = curl_init($apiURL); 
  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
  
    $apiResponse = curl_exec($ch); 
  
    curl_close($ch); 
  
    $ipData = json_decode($apiResponse, true); 
   
   
    if(!empty($ipData)){ 
        $continent = $ipData['continent']; 
        $country_code_alpha2 = $ipData['alpha2']; 
        $country_code_alpha3 = $ipData['alpha3']; 
        $country_name = $ipData['name']; 
        $country_code_numeric = $ipData['country_code']; 
        $international_prefix = $ipData['international_prefix']; 
        $currency_code = $ipData['currency_code']; 
        $latitude = $ipData['geo']['latitude']; 
        $longitude = $ipData['geo']['longitude']; 
       
        echo 'Continent Name: '.$continent.'<br/>'; 
        echo 'Country Name: '.$country_name.'<br/>'; 
        echo 'Country Alpha-2 Code: '.$country_code_alpha2.'<br/>'; 
        echo 'Country Alpha-3 Code: '.$country_code_alpha3.'<br/>'; 
        echo 'Country Numeric Code: '.$country_code_numeric.'<br/>'; 
        echo 'Country International Call Prefix Code: '
                . $international_prefix.'<br/>'; 
        echo 'Currency Code: '.$currency_code.'<br/>'; 
        echo 'Latitude: '.$latitude.'<br/>'; 
        echo 'Longitude: '.$longitude; 
    }
    else{
        echo 'Not a valid IP';
    }
}
  
?>
  
<!DOCTYPE html>
<html lang="en">
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
    <title>Get Location</title>
</head>
  
<body>
    <h1>Get Location Using IP Address</h1>
  
    <form method='post' enctype='multipart/form-data'>
        <label>Give IP address for check location</label>
        <input type='text' name='ip' />
        <input type='submit' value='Submit' name='submit' />
        <a href="index.php">Reset</a>
  
    </form>
</body>
  
</html>

Producción:

  • Dirección IP válida: cuando el usuario ingresa una dirección IP válida.
  • Dirección IP no válida: cuando el usuario ingresa una dirección IP no válida en el control de texto de entrada.

Publicación traducida automáticamente

Artículo escrito por atul07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *