От скромното си начало преди повече от 25 години,световната мрежа се е развила по начини, които дори най-добрите анализатори никога не биха могли да прогнозират. Образувайте това, което по същество беше инструмент за подпомагане на изследователите да споделят информация, то се превърна в потребителски инструмент, без който много от нас просто не могат да живеят. Той промени много аспекти от нашия живот и ние дойдохме да разчитаме на него, може би повече, отколкото би трябвало. Това стана толкова често срещано, че променя индустрията на дребно. От големите вериги магазини за тухли и хоросани, най-добрите търговци на дребно вече са пазари, базирани на уеб.
За да бъдат успешни, онлайн търговците на дребно се нуждаят не самода присъстват в мрежата, но те също трябва да използват пълноценно нейните функции. Една такава характеристика е геолокацията. Тази технология може да позволи на търговец на дребно да знае местоположението на посетителя на уебсайта си, полезна функция, която да им позволи да показват прогнозни такси за доставка или да представят специфични за местоположението оферти. Един от най-лесните начини да се възползвате от геолокацията е да използвате специален API, който може да бъде захранван с IP адрес и който ще върне всякаква подходяща информация за този адрес. Най- ipstack API е един такъв продукт и предстои да откриемкак върши магията си и какво може да направи за вас. Ще разгледаме основната функционалност на инструмента, както и как да го използва. Ще видим как се представя, какъв вид документация и поддръжка са налични за продукта и ще разгледаме неговата доста проста структура на цените.

Представяме ви ipstack
В основата си ipstack е API за геолокация, койтоизползва множество взаимосвързани интернет доставчици, за да предостави точни географски данни. Извиквате API от кода на уебсайта си и той ще върне множество географски данни за потребителите на вашия уебсайт. Разбира се, ще получите географското местоположение на потребителя (не е ли това основната точка?), Но това не е всичко. Например, инструментът ще върне връзка към изображение на знамето на държавата на потребителя или на емоджи версия на него. Освен това ще получите информация дали потребителят осъществява достъп до вашия сайт чрез прокси. Ще разгледаме по-задълбочени подробности за всичко това, докато разгледаме по-задълбочени детайли на наличните модули.
Първоначално проектът се нарича freegeoip.net, видя светлината през 2009 г. като инициатива с отворен код в помощ на разработчиците. Чрез непрекъснато усъвършенстване, основано на отзивите на потребителите, той се развива около осем години по-късно в пълноценния продукт, който разглеждаме. През това време потребителската база на продукта нарасна до над сто хиляди доволни клиенти. И те не са просто клиенти. Гиганти като Microsoft или Samsung използват API. Така са и Airbnb и HubSpot.
API на ipstack използва силно динамична схемакоято актуализира своята база данни няколко пъти на ден, като гарантира целостта на върнатите резултати. За тази цел ipstack си партнира с няколко големи интернет доставчика по целия свят. Инструментът осъществява цялата комуникация по 256-битов SSL-криптиран канал - използвайки HTTPS - за да осигури всички трансфери на данни. Резултатите могат да бъдат върнати от API във формат XML или JSON, в зависимост от вашите конкретни нужди.
Една от най-добрите части на ipstack API е неговатамодулност. Различните налични модули връщат все повече данни за местоположението на потребителя. Това прави много гъвкав инструмент. Скоростта също е един от форте на продукта. Обаждате се на API с подходящ (и) параметър и получавате исканите резултати супер бързо. Понастоящем ipstack API обработва повече от два милиарда заявки ежедневно и все още реагира почти незабавно. Чрез партньорство с различни интернет доставчици, продуктът може да обхване около 2 милиона места и над двеста хиляди градове по света. Той също така поддържа както IPv4, така и IPv6 адреси.
Как работи геолокацията
Преди да продължим по-нататък, нека да направим кратка пауза ипогледнете бързо как изглежда геолокацията. Както се досещате от името на ipstack, това има общо с IP адресите. IP адресите могат да се сравнят - до известна степен - с пощенските адреси. Всяко свързано с Интернет устройство има уникален IP адрес. Но тези IP адреси не се задават само на случаен принцип на всяко устройство. Има някакъв смисъл в това. Част от IP адрес идентифицира отделното свързано устройство, а част от него идентифицира мрежата, към която е свързана. А самата мрежова част е йерархично организирана, донякъде като дърво на директория на компютърен диск. (Надявам се инженерите сред нашите читатели да ми простят за това прекалено опростяване.)
Това е подобно на пощенски адрес с улицаномер, име на улица, град и в крайна сметка държава. И точно както британският пост няма представа къде се намира някой американски адрес, той ще изпрати свързана с САЩ поща до USPS, която ще се погрижи за маршрутизиране на пощата до правилното място. И точно както бихте могли да въведете почти всеки пощенски адрес в инструмент като карта на Google и да получите точното съответно местоположение, можете да поискате инструмент като ipstack API с IP адрес, за да получите местоположението му.
Това обаче има някои ограничения. Например няма да получите точното местоположение от IP адреса. Ще получите всичко, което може да предостави доставчикът на интернет услуги, предоставящ IP адреса. Това често не е много по-прецизно от града или общия квартал, въпреки че някои доставчици връщат повече информация от други. Освен това, ако потребителят предяви иск за VPN за достъп до уебсайта ви, това, което бихте получили от такова търсене, е местоположението на VPN сървъра, който използва.
Основни характеристики на ipstack API
Разработчиците на ipstack API избраха да използват aмодулен подход с този продукт. Състои се от различни модули, всеки от които връща различен тип информация. Има например модули от часова зона, валута или дори сигурност. Вие избирате какъв модул да използвате, като използвате подходящите параметри, когато изпращате заявката към ipstack API.
Има няколко предимства на този подход. Първо, прави реакцията по-лесна за справяне. Ако имаше само един тип заявка, връщаща всички налични данни за IP адрес, кодът на уебсайта ви ще трябва да анализира целия отговор, за да получи каквато и да е информация, от която се нуждае. Освен това изпращането на по-малки заявки - с по-малки отговори - може да подобри ефективността.
Нека разгледаме по-задълбочено всеки от наличнитемодул, как да ги извикаме и как изглежда техният типичен отговор. Това ще ви даде доста ясен преглед какво да очаквате от този мощен инструмент.
Модулът за местоположение

Най-основният модул на API на ipstack еЛокален модул. Той връща подробности за физическото местоположение на IP адреса, предоставен в заявката. Ще получите страната на IP адреса, основния или официалния му език, както и емоджи за знамето на държавата, което можете да използвате, за да персонализирате опита на вашия потребител.
Ето типичен отговор на заявка към ipstack API. Първата част е включена с всяко запитване, независимо от искания модул:
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
Повечето от върнатите атрибути са неясни, но имате подробна документация на уебсайта на ipstack, ако имате нужда от допълнителна помощ.
Но тъй като говорим за модула за местоположение, нека да разгледаме каква допълнителна информация се връща при използването му:
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
Както можете да видите, допълнителната информация, която получавате, еглавно столицата на страната, различните езици, които се използват на това място, връзка към изображение на знамето на страната и уникод на емоджита на страната.
Валутен модул

Модулът за валута може да се използва за допълнителноподобрете потребителското си изживяване на уебсайта. Това важи особено за сайт за пазаруване, тъй като ще ви позволи да показвате цени във валутата на вашия потребител. Предоставените данни включват името и символа на местната валута, както и множественото й име. API, разбира се, няма да конвертира цените в подходящата валута, но ще ви позволи да използвате друг API, за да конвертирате цените си в правилната валута за посетителите си. Нека да разгледаме как изглежда продукцията от валутния модул:
currency: Object{} code: "CAD" name: "Canadian Dollar" plural: "Canadian dollars" symbol: "CA$" symbol_native: "$"
Модулът за сигурност

Вероятно не е толкова популярен или полезен като предишниямодули, модулът за сигурност все още е интересен. Връща информация за няколко аспекта на сигурността на входящата връзка. Например, той ще ви каже дали достъпът до сайта е чрез прокси и, ако е така, типът прокси или дали заявката е влязла през мрежата tor. Може също така да ви каже, че заявката е от робот, а не от действителен потребител. Този тип информация може да се използва за предотвратяване на изстъргване. Модулът също връща нивото на заплаха, свързано с предоставения IP адрес, потенциално позволяващ груба защита срещу злонамерени заявки. Ето преглед на типичния отговор от модула за сигурност:
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
Модулът на часовата зона

Друг модул, който може да ви бъде полезенперсонализирайте потребителското изживяване на посетителите на вашия уеб сайт е модулът Time Zone. Той връща някои допълнителни подробности за - познахте - посетителите на вашия уебсайт. Едно от местата, където бихте могли да използвате такава функция в сайтове, които се занимават с чувствителна към времето информация. Тя ви позволява да показвате правилното време въз основа на местоположението на вашите потребители.
Модулът предоставя информация като компенсиране на GMT, текущо потребителско време, времеви код и местоположение на часовата зона, както можете да видите от този примерен отговор:
time_zone: Object{} id: "America/Montreal" current_time: "2019-07-09T12:39:22-04:00" gmt_offset: -14400 code: "EDT" is_daylight_saving: true
Модулът за свързване

Не на последно място е модулът за свързване. Този е доста опростен. Всичко, което връща, е номерът на автономната система (AS), свързан с IP адреса на източника, както и името на ISP. Е, всъщност е името на собственика на AS, а не на ISP. Някои организации регистрират собствена автономна система, както е в примера по-долу:
connection: Object{} asn: 395399 isp: "City of Montreal"
Това е може би най-малко полезно от всички модули, но някои ще го намерят полезно за различни аналитични цели.
Работа с ipstack API
Разгледахме каква може да бъде информациятавърнат от API на ipstack, сега е моментът да разгледаме как се нарича. API на ipstack предлага три различни типа заявки, всяка с различни параметри. Има стандартното търсене, груповото търсене и търсенето на рикуестър. Нека да видим как се различават. Това е приятна характеристика, тъй като например груповата заявка позволява да се комбинират няколко заявки в едно, като по този начин се намалява общите режийни разходи и се постигат по-бързи резултати. Нека разгледаме по-задълбочено всеки тип заявка.
Стандартен търсене
Както може би се досещате, стандартното търсене енай-основният. Той връща подробностите за един IP адрес, който предоставяте, когато се обаждате на ipstack API. Той е доста лесен за използване и ще работи с IPv4 или IPv6 адреси. За да улесним нещата, документацията на продукта предоставя примерен код за стандартната заявка както в PHP (cURL), така и в JavaScript (Jquery.ajax). Ако вашият уебсайт е създаден с помощта на което и да е от тях, използването на API наистина е безпроблемно. Ето пример за типично обаждане към API, използвайки прост HTML код:
https://api.ipstack.com/123.123.123.123?access_key=YOUR_ACCESS_KEY
В този пример, YOUR_ACCESS_KEY ще бъде заменен от действителния ключ за достъп, който виеимам, когато сте се регистрирали за услугата. В този пример ще включите и действителния IP адрес, за който искате информация, а не манекена.
Резултатите за стандартен търсене включват всичкимодули по подразбиране, но допълнителни параметри ви позволяват да настроите заявката според вашите точни нужди. Всички подробности за наличните параметри са ясно обяснени в документацията на продукта. По същия начин отговорът по подразбиране е обект JSON, но параметрите могат да го променят в XML формат.
Обеми и заявки за търсене
Търсенето в насипно състояние ви позволява да изисквате данни срещумножество IP адреси в рамките на една заявка. Точно като Standard Lookup, можете да получите данни както за IPv4, така и за IPv6 адреси. Можете дори да смесвате и двата типа адреси в една заявка. Форматът на заявката е същият като този на Standard Lookup с изключение на това, че посочвате множество IP адреси, разделени със запетаи.
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
Последният тип заявка, предлагана от ipstackAPI е търсене на заявителя. Той ще върне информация за IP адреса, от който идва заявката. Това е типът на заявката, от която бихте стартирали, ако не използвате скрипт от страна на клиента. За да осъществите обаждане за търсене на заявка, трябва да използвате ключовата дума „чек“ вместо IP адрес. Другите налични параметри на заявката са същите като при другите типове заявки.
https://api.ipstack.com/check?access_key=YOUR_ACCESS_KEY
Как се изпълнява API на ipstack?
API на ipstack е нещо повече от вероятноще се интегрирате в уебсайт в реално време. Например може да искате да сервирате различно съдържание въз основа на местоположението на клиента. За да постигнете това, трябва API да изпълнява пламтящо бързо. Всяко забавяне в отговора на API ще се превърне в закъснения, показващи страницата на вашия клиент, нещо, което бихте искали да избегнете. Същото е вярно, независимо за какво използвате данните за местоположението. Ето защо времето за реакция на инструмента, който използвате е от изключително значение. Докато API за геолокация може да осигури много необходима функционалност, неговото неизпълнение може да има катастрофално въздействие.
Поради тези причини трябва да изберете API сдобро време за реакция Положихме голяма част от усилената работа за тестване на различни сценарии и проведохме тестове с един или няколко IP адреса, някои с по-незадължителни параметри, други с по-малко. Бяхме доста доволни от резултатите и получихме доста последователно време за реакция от около 100 ms, независимо от заявката. Отговорът също беше постоянен с течение на времето, без видими „часове на пик“, когато изпълнението щеше да пострада и също беше подобно, независимо от това, откъде стартирахме заявките. Изглежда, че сървърите на ipstack са създадени да се справят с натоварването, което получават. Като цяло изглежда, че използването на ipstack API нямаше почти никакъв ефект върху отговора на уебсайта, гледан от гледна точка на потребителя.
Документация и поддръжка на продукта
Често се казва, че един продукт е също толкова добъркато негова документация. Ако това е вярно, API на ipstack няма от какво да се страхува, тъй като неговата документация е лесна за намиране, използване и разбиране. Качеството на документацията също дава мярка за това колко издаден софтуер се грижи за своите потребители. И тук отново няма за какво да се притеснявате.

Едно от най-хубавите неща за този продуктдокументацията е, колкото и да е странно, колко малко има. Всичко се вписва в една, добре подредена уеб страница, където лесно ще намерите всичко необходимо. И за да стане още по-лесно, прозорецът на менюто прави лесен достъп до която и да е секция. Документацията обхваща всичко - от използването на различни видове заявки до персонализиране на отговора.
В много малко вероятния случай, когато не бихтенамерете това, от което се нуждаете в документацията, налична е и поддръжка. Може да отнеме известно време, докато първоначално достигнете до техническата поддръжка, но след като го направите, те реагират доста бързо.
Ценообразуване
Налични са няколко ценови планове заipstack API. На най-ниското ниво там е безплатният план. Както подсказва името му, този е безплатен. Освен това е донякъде ограничен. Като начало можете да пускате само до 10 000 заявки на месец. Той също така включва само модула за местоположение и достъпът до поддръжката е ограничен. Това обаче може да бъде чудесен начин да тествате продукта и да видите как може да се интегрира във вашата среда.
Следващото ниво е основният план. Този се продава за $ 9,99 / месец или $ 95,90 / година (20% отстъпка) и носи лимита на заявките до 50 000 / месец. Също така ви позволява да използвате модулите за валута, часова зона и връзка. Освен това в плана е включена и подобрена поддръжка, както и подобрена сигурност чрез използване на SSL криптиране.
Най-популярният план е професионалнияткоято се продава за $ 49,99 / месец или $ 479,90 / година. Той ви дава всичко, което е включено в основния план, но увеличава лимита на месечните заявки до 500 000 и също така включва възможността да правите групови заявки.
Най-отгоре е професионалният плюс плюс. Тя струва $ 99,99 / месец или $ 959,90 / година. Той е идентичен с професионалния план, но позволява до 2 милиона заявки на месец и е единственият план за включване на модула за защита.
Ако това не е достатъчно, има иперсонализиран корпоративен план, който може да бъде подреден чрез свързване с ipstack. Тя може да включва толкова месечни заявки, колкото може да са ви необходими, както и различни персонализирани решения въз основа на специфичните нужди на клиента.
В заключение
API на ipstack е отличен продукт, който щенека да вземете по-голяма част от данните, които можете да получите от IP адрес бързо и лесно. Той има невероятно време за реакция, отлична документация и добра поддръжка, които комбинират, за да направят това голяма полза за парите. Също така, самият факт, че няколко интернет гиганта го използват, вероятно е добро свидетелство за стойността на продукта.
Това определено е продукт, който бих препоръчал акотърсите да използвате данните, които могат да бъдат събрани за IP адреса на посетителя на вашия уебсайт. И тъй като е наличен безплатен - макар и ограничен - план, няма причина защо не бива да го опитвате поне да видите сами какво може да направи за вас.
Коментари