API de GeoIPy

GeoIPy ofrece una robusta API de geolocalización en tiempo real de IP que puede determinar con precisión los datos de ubicación e identificar posibles amenazas de seguridad de direcciones IP de alto riesgo. Los resultados se entregan en milisegundos en formato JSON. Con la API de GeoIPy, puedes identificar instantáneamente las ubicaciones de los visitantes del sitio web y adaptar tu experiencia de usuario y aplicación en consecuencia.

Esta documentación cubre de manera exhaustiva las características de la API, las opciones disponibles y las guías de integración para varios lenguajes de programación.

Token de acceso a la API

Su token de acceso a la API sirve como su credencial de autenticación distintiva para acceder a la API de GeoIPy. Para autenticarse con la API, incluya el parámetro access_key en la URL base de la API y asígnele el valor de su token de acceso.

URL del token:
https://www.geoipy.com/</code>

Adjunte su clave de acceso a la API: El siguiente ejemplo muestra cómo autenticarse usando la API de GeoIPy en una solicitud de API:
https://www.geoipy.com/api/IPsInfo/?ip=@(Model.IP)
&key=@(Key)

Resultado de la API

La API de GeoIPy puede proporcionar datos en formato JSON. El siguiente ejemplo demuestra el resultado de la API que GeoIPy devolvería en respuesta a la llamada de API de la sección anterior, que solicita información para la dirección IP @(Model.IP).

{
  "ip": "3.15.235.239",
  "hostname": "ec2-3-15-235-239.us-east-2.compute.amazonaws.com",
  "type": "ipv4",
  "continent_code": "NA",
  "continent_name": "North America",
  "country_code": "US",
  "country_name": "United States",
  "region_code": "OH",
  "region_name": "Ohio",
  "city": "Columbus",
  "zip": "43201",
  "latitude": 39.995578765869141,
  "longitude": -82.999458312988281,
  "msa": "18140",
  "dma": "535",
  "radius": "41.01305",
  "ip_routing_type": "international proxy",
  "connection_type": "tx",
  "location": {
    "geoname_id": 4509177,
    "capital": "Washington D.C.",
    "languages": [
      {
        "code": "en",
        "name": "English",
        "native": "English"
      }
    ],
    "country_flag": "https://www.geoipy.com/flags/us.svg",
    "country_flag_emoji": "🇺🇸",
    "country_flag_emoji_unicode": "U+1F1FA U+1F1F8",
    "calling_code": "1",
    "is_eu": false
  },
  "time_zone": {
    "id": "America/New_York",
    "current_time": "2024-09-19T04:20:19+03:00",
    "gmt_offset": -14400,
    "code": "EDT",
    "is_daylight_saving": true
  },
  "currency": {
    "code": "USD",
    "name": "US Dollar",
    "plural": "US dollars",
    "symbol": "$",
    "symbol_native": "$"
  },
  "connection": {
    "asn": 16509,
    "isp": "amazon.com Inc",
    "sld": "amazonaws",
    "tld": "com",
    "carrier": "amazon.com inc",
    "home": false,
    "organization_type": "Retail",
    "isic_code": "G4791",
    "naics_code": "004541"
  }
}
                            


Las respuestas de la API incluyen datos extensos relacionados con la ubicación, la moneda, la zona horaria y la conexión.

Códigos de error

Si un recurso solicitado no está disponible o si una llamada a la API encuentra un problema, se devolverá un error en formato JSON. Estos errores siempre van acompañados de un código de error y una descripción.

Ejemplo de error: El error a continuación se devuelve cuando se ha excedido el límite mensual de solicitudes a la API.
{
  "success": false,
  "error": {
    "code": 100,
    "type": "missing_access_key",
    "info": "No API Key was specified."
  }
}


Código Tipo Información
100 missing_access_key No API Key was specified.
101 invalid_access_key No API Key was specified or an invalid API Key was specified.
102 inactive_user The current user account is not active. User will be prompted to get in touch with Customer Support.
103 invalid_api_function The requested API endpoint does not exist.
104 usage_limit_reached The maximum allowed amount of monthly API requests has been reached.
105 function_access_restricted The current subscription plan does not support this API endpoint.
106 https_access_restricted The user's current subscription plan does not support HTTPS Encryption.
301 invalid_fields One or more invalid fields were specified using the fields parameter.
302 too_many_ips Too many IPs have been specified for the Bulk Lookup Endpoint. (max. 50)
303 batch_not_supported_on_plan The Bulk Lookup Endpoint is not supported on the current subscription plan
404 404_not_found The requested resource does not exist.

PHP (cURL)

//establecer la dirección IP y la clave de acceso a la API
$ip = '3.15.235.239';
$key = 'veluihrPp9w0CekwtTlTo7TzaofQaIwp'; // Inicializar CURL:
$ch = curl_init('https://www.geoipy.com/api/IPsInfo?ip='.$ip.'&key='.$key.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Almacenar los datos:
$json = curl_exec($ch);
curl_close($ch);

// Decodificar la respuesta JSON:
$api_result = json_decode($json, true);

// Mostrar el objeto "capital" dentro de "location"
echo $api_result['location']['capital'];

JavaScript (jQuery.ajax)

// establecer la dirección IP y la clave de acceso a la API
var ip = '3.15.235.239'
var key = 'veluihrPp9w0CekwtTlTo7TzaofQaIwp'; // Obtener el resultado de la API a través de jQuery.ajax
$.ajax({
url: 'https://www.geoipy.com/api/IPsInfo?ip=' + ip + '&key=' + key,
dataType: 'jsonp',
success: function(json) {

// Mostrar el objeto "capital" dentro de "location"
alert(json.location.capital);

}
});

C#

using System.Net.Http;
using Newtonsoft.Json.Linq;

// ...

// establecer la dirección IP y la clave de acceso a la API
string ip = "3.15.235.239";
string Key = "veluihrPp9w0CekwtTlTo7TzaofQaIwp";

// Inicializar una instancia de HttpClient
using (var httpClient = new HttpClient())
{
// Enviar una solicitud HTTP GET a la URL especificada
var response = await httpClient.GetAsync($"https://www.geoipy.com/api/IPsInfo?ip={ip}&key={Key}");


// Verificar si la respuesta es exitosa
if (response.IsSuccessStatusCode)
{
// Leer la respuesta JSON como una cadena
string jsonResponse = await response.Content.ReadAsStringAsync();

// Deserializar la cadena JSON en un JObject
JObject apiResult = JObject.Parse(jsonResponse);

// Obtener el objeto "capital" dentro del objeto "location"
string capital = apiResult["location"]["capital"].ToString();

// Mostrar la capital
Console.WriteLine(capital);
}
else
{
Console.WriteLine("Se produjo un error al obtener los datos");
}
}