How to get the location through the IP with JavaScript and with ipstack?

Where from your web users are is an incredible advantage for any website; You can show relative content such as maps, prices and availability, generate content in your language depending on the location, etc. I cannot overstate how useful that information is, of course, we have the HTML5 geolocation API, but it is based on permissions and although its service serves its purpose, the browser's geolocation pop-up window can scare users.


The geolocation is essential for your web application, the HTML5 geolocation API is not reliable enough; instead, you can use as a option, a location service based on IP with ipstack.

Advantage

  • ipstack allows 10,000 free requests per month
  • You only need the IP address
  • Returns the country name, country code, region, zip code and more
  • The request is JSON is small, simple and customizable
  • Among others

Using ipstack

Ipstack is easy to use, to get basic information about an IP address you just have to make a call like the following:

var ip = ' 201.144.237.145’

var access_key = 'YOUR_ACCESS_KEY';

// get the API result via jQuery.ajax

$.ajax({

    url: 'http://api.ipstack.com/' + ip + '?access_key=' + access_key,  

    dataType: 'jsonp',

    success: function(json) {

        alert(json.location.capital);     

    }

});

The API response would look like this:

ip	"201.144.237.145"
type	"ipv4"
continent_code	"NA"
continent_name	"North America"
country_code	"MX"
country_name	"Mexico"
region_code	"CMX"
region_name	"Mexico City"
city	"Mexico City"
zip	"63009"
latitude	19.4342
longitude	-99.1386
location	
geoname_id	3530597
capital	"Mexico City"
languages	
0	
code	"es"
name	"Spanish"
native	"Español"
country_flag	"http://assets.ipstack.com/flags/mx.svg"
country_flag_emoji	"????"
country_flag_emoji_unicode	"U+1F1F2 U+1F1FD"
calling_code	"52"
is_eu	false

Complete code

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>

    <span></span>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
        var ip = '134.201.250.155'
        var access_key = 'YOUR_ACCESS_KEY';

        // get the API result via jQuery.ajax
        $.ajax({
            url: 'http://api.ipstack.com/' + ip + '?access_key=' + access_key,
            dataType: 'json',
            success: function (json) {

                // output the "capital" object inside "location"
                $("span").text(json.location);
                alert(json.location.capital);

            }
        });
    </script>
</body>
</html>

 

Artículos relacionados
0 Comentarios
Enviame un comentario