Sinds het bescheiden begin meer dan 25 jaar geleden,het wereldwijde web is geëvolueerd op een manier die zelfs de beste analisten nooit hadden kunnen voorspellen. Vorm wat in wezen een hulpmiddel was om onderzoekers te helpen informatie te delen, het is geëvolueerd tot een hulpmiddel voor consumenten waar velen van ons gewoon niet zonder kunnen. Het heeft veel aspecten van ons leven veranderd en we zijn erop gaan vertrouwen, misschien meer dan we zouden moeten. Het is zo gemeengoed geworden dat het de detailhandel verandert. Van grote ketens van fysieke winkels zijn de topretailers nu webgebaseerde marktplaatsen.
Om succesvol te zijn, hebben online retailers niet alleen dat nodigom op internet aanwezig te zijn, maar ze moeten ook de functies ervan volledig benutten. Een dergelijke functie is geolocatie. Met deze technologie kan een detailhandelaar de locatie van de bezoeker van zijn website kennen, een handige functie om geschatte verzendkosten weer te geven of locatiespecifieke aanbiedingen te presenteren. Een van de gemakkelijkste manieren om te profiteren van geolocatie is om een speciale API te gebruiken die kan worden gevoed met een IP-adres en die alle relevante informatie over dat adres retourneert. De ipstack API is zo'n product en we gaan het binnenkort ontdekkenhoe het zijn magie doet en wat het voor u kan doen. We kijken naar de basisfunctionaliteit van het hulpprogramma en hoe het te gebruiken. We zullen zien hoe het presteert, welk type documentatie en ondersteuning beschikbaar is voor het product en kijken naar de vrij eenvoudige prijsstructuur.

Introductie van ipstack
In de kern is ipstack een geolocatie-API diegebruikt meerdere onderling verbonden ISP's om nauwkeurige geografische gegevens te verstrekken. U roept de API op vanuit de code van uw website en deze retourneert een overvloed aan geografische gegevens over de gebruikers van uw website. U krijgt natuurlijk de geografische locatie van de gebruiker (is dat niet het belangrijkste punt?) Maar dat is niet alles. De tool retourneert bijvoorbeeld een link naar een afbeelding van de landvlag van de gebruiker of een emoji-versie ervan. Bovendien krijgt u informatie over of de gebruiker uw site bezoekt via een proxy. We zullen hier dieper op ingaan terwijl we dieper op de beschikbare modules ingaan.
Het project, aanvankelijk freegeoip genoemd.net, zag het licht terug in 2009 als een open source initiatief om ontwikkelaars te helpen. Door voortdurende verbetering op basis van feedback van gebruikers, evolueerde het zo'n acht jaar later naar het volwaardige product waar we naar kijken. Gedurende deze periode groeide het gebruikersbestand van het product tot meer dan honderdduizend tevreden klanten. En het zijn niet zomaar klanten. Reuzen zoals Microsoft of Samsung gebruiken de API. Zo zijn Airbnb en HubSpot.
De ipstack API maakt gebruik van een zeer dynamisch schemadie zijn database meerdere keren per dag bijwerkt, waardoor de integriteit van de geretourneerde resultaten wordt gewaarborgd. Hiertoe werkt ipstack samen met verschillende grote ISP's over de hele wereld. De tool voert alle communicatie uit via 256-bit SSL-gecodeerd kanaal - met behulp van HTTPS - om alle gegevensoverdrachten te beveiligen. Resultaten kunnen door de API worden geretourneerd in XML- of JSON-indeling, afhankelijk van uw specifieke behoeften.
Een van de beste delen van ipstack API is hetmodulariteit. Verschillende beschikbare modules retourneren steeds meer gegevens over de locatie van de gebruiker. Dat zorgt voor een zeer flexibel hulpmiddel. Snelheid is ook een van de troeven van het product. U roept de API met de juiste parameter (s) en krijgt de gevraagde resultaten supersnel. Momenteel verwerkt ipstack API dagelijks meer dan twee miljard aanvragen en reageert het nog steeds vrijwel onmiddellijk. Door een partnerschap met verschillende ISP's kan het product ongeveer 2 miljoen locaties en meer dan tweehonderdduizend steden over de hele wereld bestrijken. Het ondersteunt ook zowel IPv4- als IPv6-adressen.
Hoe geolocatie werkt
Voordat we verder gaan, pauzeren we even enbekijk snel hoe geolocatie eruit ziet. Zoals je kunt raden aan de naam van ipstack, heeft dit te maken met IP-adressen. IP-adressen kunnen - tot op zekere hoogte - worden vergeleken met postadressen. Elk met internet verbonden apparaat heeft een uniek IP-adres. Maar deze IP-adressen worden niet zomaar willekeurig aan elk apparaat toegewezen. Er zit een zekere zin in. Een deel van een IP-adres identificeert het individueel verbonden apparaat en een deel ervan identificeert het netwerk waarmee het is verbonden. En het netwerkgedeelte zelf is hiërarchisch georganiseerd, ongeveer zoals een mapstructuur van een computerschijf. (Ik hoop dat de ingenieurs onder onze lezers me deze te simpele vereenvoudiging zullen vergeven.)
Dit is vergelijkbaar met een postadres met een straatnummer, een straatnaam, een stad en, uiteindelijk, een land. En net zoals de Britse post geen idee heeft waar een Amerikaans adres zich bevindt, zal het door de VS gebonden e-mail naar de USPS sturen, die ervoor zorgt dat de e-mail naar de juiste locatie wordt gerouteerd. En net zoals u vrijwel elk postadres in een tool zoals Google map kunt invoeren en de exacte bijbehorende locatie kunt krijgen, kunt u een tool zoals de ipstack API met een IP-adres opvragen om de locatie te achterhalen.
Dit heeft echter enkele beperkingen. U krijgt bijvoorbeeld niet de exacte locatie van het IP-adres. Wat u krijgt is wat de ISP die het IP-adres levert, kan bieden. Dit is vaak niet veel preciezer dan de stad of de algemene buurt, hoewel sommige providers meer informatie retourneren dan anderen. Als de gebruiker een VPN aanklaagt om toegang te krijgen tot uw website, krijgt u ook de locatie van de VPN-server die hij gebruikt.
Hoofdkenmerken van de ipstack API
De ontwikkelaars van de ipstack API hebben ervoor gekozen om eenmodulaire aanpak met dit product. Het bestaat uit verschillende modules, die elk een ander soort informatie retourneren. Er zijn bijvoorbeeld modules voor tijdzone, valuta of zelfs beveiliging. U kiest welke module u wilt gebruiken door de juiste parameters te gebruiken bij het verzenden van de aanvraag naar de ipstack API.
Er zijn een paar voordelen aan deze aanpak. Ten eerste maakt het de reactie gemakkelijker te verwerken. Als er slechts één type verzoek was om alle beschikbare gegevens over een IP-adres te retourneren, zou de code van uw website het hele antwoord moeten parseren om alle benodigde informatie op te halen. Het verzenden van kleinere aanvragen - met kleinere antwoorden - kan ook de prestaties verbeteren.
Laten we elk van de beschikbare opties nader bekijkenmodule, hoe ze te bellen en hoe hun typische reactie eruit ziet. Dat geeft je een vrij duidelijk overzicht van wat je kunt verwachten van deze krachtige tool.
De locatiemodule

De meest basale module van de ipstack API is deLocatiemodule. Het retourneert details over de fysieke locatie van het IP-adres dat in de query is opgegeven. U krijgt het land van het IP-adres, de hoofd- of officiële taal en een emoji voor de vlag van het land die u kunt gebruiken om de gebruikerservaring te personaliseren.
Hier is een typisch antwoord op een vraag naar de ipstack API. Het eerste deel is bij elke vraag inbegrepen, ongeacht de gevraagde module:
ip: "142.243.254.224" hostname: "142.243.254.224" type: "ipv4" continent_code: "NA" continent_name: "North America" country_code: "CA" country_name: "Canada" region_code: "QC" region_name: "Quebec" city: "Montreal" zip: H2V latitude: 45.5178 longitude: -73.6046
De meeste van de geretourneerde kenmerken zijn zelfverklarend, maar u heeft gedetailleerde documentatie op de website van ipstack als u meer hulp nodig hebt.
Maar omdat we het hebben over de locatiemodule, laten we eens kijken welke extra informatie er wordt geretourneerd wanneer we deze gebruiken:
location: Object {} geoname_id: null capital: "Ottawa" languages: Object {} code: "en" name: "English" native: ""English"" code: "fr" name: "French" native: ""Français"" country_flag: "http://assets.ipstack.com/flags/ca.svg" country_flag_emoji: "??" country_flag_emoji_unicode: "U+1F1E8 U+1F1E6" calling_code: "1" is_eu: false
Zoals u ziet, is de extra informatie die u krijgtvoornamelijk de hoofdstad van het land, de verschillende talen die op die locatie worden gebruikt, een link naar een afbeelding van de vlag van het land en de unicode van de emoji van het land.
De valutamodule

De valutamodule kan worden gebruikt om verder te gaanverbeter de gebruikerservaring van uw website. Dit geldt met name voor een winkelsite, omdat u hiermee prijzen kunt weergeven in de valuta van uw gebruiker. De verstrekte gegevens omvatten de lokale valutanaam en het symbool evenals de meervoudsnaam. De API converteert prijzen natuurlijk niet naar de juiste valuta, maar hiermee kunt u een andere API gebruiken om uw prijzen om te zetten in de juiste valuta voor uw bezoekers. Laten we eens kijken hoe de uitvoer van de valutamodule eruit ziet:
currency: Object{} code: "CAD" name: "Canadian Dollar" plural: "Canadian dollars" symbol: "CA$" symbol_native: "$"
De beveiligingsmodule

Waarschijnlijk niet zo populair - of nuttig - als de vorigemodules, de beveiligingsmodule is nog steeds interessant. Het retourneert informatie over verschillende beveiligingsaspecten van de inkomende verbinding. Het zal u bijvoorbeeld vertellen of de site toegankelijk is via een proxy en, zo ja, het type proxy of dat het verzoek binnenkwam via het tor-netwerk. Het kan u ook vertellen dat een verzoek afkomstig is van een crawler en niet van een echte gebruiker. Dit type informatie kan worden gebruikt om schrapen te voorkomen. De module retourneert ook het dreigingsniveau dat is gekoppeld aan het opgegeven IP-adres, waardoor mogelijk ruwe bescherming tegen kwaadwillende verzoeken mogelijk is. Hier is een blik op de typische reactie van de beveiligingsmodule:
security: Object{} is_proxy: false proxy_type: null is_crawler: false crawler_name: null crawler_type: null is_tor: false threat_level: "low" threat_types: null
De tijdzonemodule

Nog een module die van pas kan komende gebruikerservaring van uw website personaliseren is de module Tijdzone. Het geeft enkele extra details over - u raadt het al - de bezoekers van uw website. Een van de plaatsen waar u een dergelijke functie kunt gebruiken op sites die omgaan met tijdgevoelige informatie. Hiermee kunt u de juiste tijd weergeven op basis van de locatie van uw gebruikers.
De module biedt informatie zoals GMT-offset, huidige gebruikstijd, tijdcode en tijdzonelocatie, zoals u kunt zien in deze voorbeeldreactie:
time_zone: Object{} id: "America/Montreal" current_time: "2019-07-09T12:39:22-04:00" gmt_offset: -14400 code: "EDT" is_daylight_saving: true
De verbindingsmodule

Last but not least is de verbindingsmodule. Deze is nogal simplistisch. Het enige dat wordt geretourneerd, is het nummer van het autonome systeem (AS) dat is gekoppeld aan het bron-IP-adres en de ISP-naam. Nou, het is eigenlijk de naam van de AS-eigenaar in plaats van de ISP. Sommige organisaties registreren hun eigen autonome systeem, zoals in het onderstaande voorbeeld:
connection: Object{} asn: 395399 isp: "City of Montreal"
Dit is waarschijnlijk het minst nuttige van alle modules, maar sommigen zullen het nuttig vinden voor verschillende analytische doeleinden.
Werken met de ipstack API
We hebben gekeken welke informatie kan zijngeretourneerd door de ipstack API, nu is het tijd om te kijken hoe het wordt genoemd. De ipstack API biedt drie verschillende soorten query's met elk verschillende parameters. Er is de standaard lookup, de bulk lookup en de aanvrager lookup. Laten we eens kijken hoe ze verschillen. Dit is een leuke functie, omdat je met het bulkverzoek bijvoorbeeld meerdere aanvragen in één kunt combineren, waardoor de totale overhead wordt verminderd en snellere resultaten mogelijk zijn. Laten we elk type verzoek nader bekijken.
Standaard opzoeken
Zoals je misschien al geraden hebt, is de standaard lookupde meest elementaire. Het retourneert de details over een enkel IP-adres dat u opgeeft wanneer u de ipstack API aanroept. Het is vrij eenvoudig te gebruiken en het werkt met IPv4- of IPv6-adressen. Om het allemaal nog eenvoudiger te maken, biedt de documentatie van het product voorbeeldcode voor het standaardverzoek in zowel PHP (cURL) als JavaScript (Jquery.ajax). Als uw website is gebouwd met behulp van een van deze, is het gebruik van de API echt geen probleem. Hier is een voorbeeld van een typische aanroep naar de API met behulp van eenvoudige HTML-code:
https://api.ipstack.com/123.123.123.123?access_key=YOUR_ACCESS_KEY
In dit voorbeeld YOUR_ACCESS_KEY zou worden vervangen door de daadwerkelijke toegangssleutel die u gebruiktkreeg toen je je aanmeldde voor de service. In dit voorbeeld zou u ook het daadwerkelijke IP-adres opnemen waarover u informatie wilt in plaats van het dummy-adres.
De resultaten voor een standaard opzoekactie omvatten allemodules standaard, maar met extra parameters kunt u het verzoek afstemmen op uw exacte behoeften. Alle details over de beschikbare parameters worden duidelijk uitgelegd in de productdocumentatie. Evenzo is het standaardantwoord een JSON-object, maar parameters kunnen dat veranderen in een XML-indeling.
Opzoeken in bulk en aanvragers
Met de bulk-lookup kunt u gegevens opvragenmeerdere IP-adressen binnen één verzoek. Net als de standaard lookup, kunt u gegevens ophalen op zowel IPv4- als IPv6-adressen. U kunt zelfs beide typen adressen in één aanvraag combineren. De indeling van de aanvraag is dezelfde als die van Standaard opzoeken, behalve dat u meerdere IP-adressen opgeeft, gescheiden door komma's.
https://api.ipstack.com/123.123.123.123,124.124.124.124,125.125.125.125, 126.126.126.126?access_key=YOUR_ACCESS_KEY
Het laatste type aanvraag aangeboden door de ipstackAPI is de aanvraagzoeker. Het retourneert informatie over het IP-adres waaruit het verzoek afkomstig is. Dit is het type verzoek waarvoor u geen client-side script wilt gebruiken. Om een verzoek om opzoeking te doen, hoeft u alleen het trefwoord "check" te gebruiken in plaats van een IP-adres. De andere beschikbare verzoekparameters zijn dezelfde als voor andere verzoektypen.
https://api.ipstack.com/check?access_key=YOUR_ACCESS_KEY
Hoe presteert de ipstack API?
De ipstack API is meer dan waarschijnlijk ietsu zou integreren in een realtime website. U wilt bijvoorbeeld verschillende inhoud weergeven op basis van de locatie van de klant. Om dat te bereiken, heb je de API nodig om razendsnel te presteren. Elke vertraging in de API-reactie vertaalt zich in vertragingen bij het weergeven van de pagina aan uw klant, iets dat u meer dan waarschijnlijk zou willen vermijden. Hetzelfde geldt ongeacht waar u de locatiegegevens voor gebruikt. Daarom is de reactietijd van de tool die u gebruikt van het grootste belang. Hoewel een geolocatie-API een broodnodige functionaliteit kan bieden, kan het falen om te presteren desastreuze gevolgen hebben.
Om deze redenen moet u een API kiezen metgoede reactietijd. We hebben het harde werk van het testen van verschillende scenario's gedaan en tests uitgevoerd met enkele of meerdere IP-adressen, sommige met meer optionele parameters, sommige met minder. We waren best tevreden met de resultaten en kregen een vrij consistente responstijd van ongeveer 100 ms, ongeacht het verzoek. De respons was ook consistent in de tijd zonder duidelijke "spitsuren" wanneer de prestaties zouden lijden en het was ook vergelijkbaar, ongeacht waar we de verzoeken van lanceerden. Het lijkt erop dat de ipstack-servers zijn gebouwd om de belasting die ze krijgen aan te kunnen. Over het algemeen lijkt het gebruik van de ipstack-API nauwelijks effect te hebben op de respons van de website vanuit het perspectief van een gebruiker.
Productdocumentatie en ondersteuning
Er wordt vaak gezegd dat een product maar zo goed isals documentatie. Als dat waar is, heeft de ipstack API niets te vrezen, omdat de documentatie gemakkelijk te vinden, te gebruiken en te begrijpen is. De kwaliteit van de documentatie geeft ook een maat voor hoeveel een software-uitgever om zijn gebruikers geeft. Ook hier hoeft u zich geen zorgen te maken.

Een van de beste dingen van dit productdocumentatie is, vreemd genoeg, hoe weinig er is. Alles past op één enkele, overzichtelijke webpagina waar u gemakkelijk alles vindt wat u nodig hebt. En om het allemaal nog eenvoudiger te maken, maakt een menuvenster toegang tot een bepaald gedeelte een fluitje van een cent. De documentatie omvat alles, van het gebruik van de verschillende soorten verzoeken tot het aanpassen van de reactie.
In het zeer onwaarschijnlijke geval dat u dat niet zou doenvind wat u nodig hebt in de documentatie, ondersteuning is ook beschikbaar. Het kan enige tijd duren om in eerste instantie de technische ondersteuning te bereiken, maar als je dat doet, reageren ze vrij snel.
pricing
Er zijn verschillende tariefplannen beschikbaar voor deipstack API. Op het laagste niveau is er het gratis plan. Zoals de naam al aangeeft, is deze gratis. Het is ook enigszins beperkt. Om te beginnen kunt u maximaal 10.000 vragen per maand uitvoeren. Het bevat ook alleen de locatiemodule en de toegang tot ondersteuning is beperkt. Het kan echter een geweldige manier zijn om het product te testen en te zien hoe het in uw omgeving kan worden geïntegreerd.
Het volgende niveau is het basisplan. Deze verkoopt voor $ 9,99 / maand of $ 95,90 / jaar (een korting van 20%) en brengt de limiet voor aanvragen op 50.000 / maand. U kunt ook de modules Valuta, Tijdzone en Verbinding gebruiken. Bovendien is verbeterde ondersteuning ook opgenomen in het plan, evenals verbeterde beveiliging door het gebruik van SSL-codering.
Het populairste plan is het professioneledie voor $ 49,99 / maand of $ 479,90 / jaar verkoopt. Het geeft u alles wat is opgenomen in het basisplan, maar verhoogt de limiet voor maandelijkse aanvragen tot 500.000 en biedt ook de mogelijkheid om bulkverzoeken te doen.
Bovenaan staat het professionele plusplan. Het kost $ 99,99 / maand of $ 959,90 / jaar. Het is identiek aan het professionele plan, maar het staat maximaal 2 miljoen aanvragen per maand toe en het is het enige plan dat de beveiligingsmodule bevat.
Als dat niet genoeg is, is er ook eenaanpasbaar ondernemingsplan dat kan worden geregeld door contact op te nemen met ipstack. Het kan zoveel maandelijkse verzoeken bevatten als u nodig heeft, evenals verschillende aangepaste oplossingen op basis van de specifieke behoeften van een klant.
Tot slot
De ipstack API is een uitstekend product dat zallaat u snel en gemakkelijk zoveel mogelijk data van een IP-adres halen. Het heeft een geweldige responstijd, uitstekende documentatie en goede ondersteuning die samen dit een grote waarde voor het geld maken. Ook het feit dat verschillende internetreuzen het gebruiken, is waarschijnlijk een goed bewijs van de waarde van het product.
Dit is absoluut een product dat ik zou aanbevelen alsu overweegt de gegevens te gebruiken die kunnen worden verzameld voor het IP-adres van uw websitebezoeker. En omdat er een gratis - zij het beperkt - plan beschikbaar is, is er geen reden waarom je het niet eens zou moeten proberen om zelf te zien wat het voor je kan doen.
Comments