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.
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:
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).
Las respuestas de la API incluyen datos extensos relacionados con la ubicación, la moneda, la zona horaria y la conexión.
{ "ip": "52.14.76.200", "hostname": "ec2-52-14-76-200.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": "fixed", "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": "2025-04-04T02:53:43+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.
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 = '52.14.76.200';
$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 = '52.14.76.200'
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 = "52.14.76.200";
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");
}
}