מאז ראשיתו הצנועה לפני למעלה מ 25 שנה,הרשת העולמית התפתחה בדרכים שאפילו האנליסטים הטובים ביותר לא היו יכולים לחזות מעולם. צורה של מה שהיה בעצם כלי לסייע לחוקרים לשתף מידע, הוא התפתח לכלי צרכני שרבים מאיתנו פשוט לא יכולים לחיות בלעדיו. זה שינה היבטים רבים בחיינו ואנחנו באנו להסתמך על זה, אולי יותר ממה שאנחנו צריכים. זה הפך כל כך נפוץ שהוא משנה את ענף הקמעונאות. מרשתות גדולות של חנויות לבנים וטיט, הקמעונאים המובילים הם כיום שוק מבוסס אינטרנט.
כדי להצליח, קמעונאים מקוונים צריכים לא רקלהיות נוכח באינטרנט, אך הם צריכים גם לנצל את התכונות שלה באופן מלא. תכונה אחת כזו היא מיקום גיאוגרפי. טכנולוגיה זו יכולה לאפשר לקמעונאי לדעת את מיקום מבקר האתר שלו, תכונה שימושית המאפשרת להם להציג דמי משלוח משוערים או להציג הצעות ספציפיות למיקום. אחת הדרכים הקלות ביותר ליהנות ממיקום גיאוגרפי היא להשתמש בממשק API ייעודי שניתן להזין עם כתובת IP ושיביא כל מידע רלוונטי על כתובת זו. ה ipstack API הוא מוצר כזה ואנחנו עומדים לגלותאיך הוא עושה את הקסם שלו ומה הוא יכול לעשות בשבילך. אנו נבחן את הפונקציונליות הבסיסית של הכלי וכן כיצד להשתמש בו. נראה כיצד הוא מבצע ביצועים, איזה סוג של תיעוד ותמיכה זמינים למוצר ונבחן את מבנה התמחור הפשוט למדי שלו.

הצגת ipstack
בבסיסה, ipstack הוא ממשק API של מיקום גיאוגרפימשתמש במספר ספקי שירותי אינטרנט מחוברים זה לזה כדי לספק נתונים גיאוגרפיים מדויקים. אתה מתקשר לממשק ה- API מקוד האתר שלך והוא יחזיר שפע של נתונים גיאוגרפיים על משתמשי האתר שלך. כמובן שתשיג את המיקום הגאוגרפי של המשתמש (האם זה לא העיקר?) אבל זה לא הכל. לדוגמה, הכלי יחזיר קישור לתמונה של דגל המדינה של המשתמש או לגרסת אמוג'י שלו. יתר על כן, תקבל מידע אם המשתמש ניגש לאתר שלך באמצעות פרוקסי. נעבור לפרטי פרטים עמוקים יותר על כך כאשר אנו מסתכלים בפרטים עמוקים יותר על המודולים הזמינים.
הפרויקט, שנקרא בתחילה freegeoip.נטו, ראתה את האור בחזרה בשנת 2009 כיוזמת קוד פתוח לסייע למפתחים. באמצעות שיפור מתמשך המבוסס על משוב של משתמשים, הוא התפתח כשמונה שנים לאחר מכן למוצר מן המניין שאנו בוחנים. במהלך תקופה זו, בסיס המשתמשים במוצר צמח ליותר ממאה אלף לקוחות מרוצים. והם לא סתם לקוחות. ענקים כמו מיקרוסופט או סמסונג משתמשים בממשק ה- API. כך גם Airbnb ו- HubSpot.
ממשק ה- ipstack משתמש בסכמה דינאמית במיוחדאשר מעדכן את מסד הנתונים מספר פעמים ביום, ומבטיח את שלמות התוצאות שהוחזרו. למטרה זו, ipstack התחברה עם מספר ספקי שירותי אינטרנט גדולים ברחבי העולם. הכלי מבצע את כל התקשורת דרך ערוץ מוצפן SSL של 256 סיביות - באמצעות HTTPS - כדי לאבטח את כל העברת הנתונים. ניתן להחזיר תוצאות באמצעות ה- API בפורמט XML או JSON, בהתאם לצרכים הספציפיים שלך.
אחד החלקים הטובים ביותר של ה- ipstack API הוא זהמודולריות. מודולים זמינים שונים מחזירים יותר ויותר נתונים על מיקום המשתמש. זה מאפשר כלי מאוד גמיש. מהירות היא גם אחת מהפורטות של המוצר. אתה מתקשר לממשק ה- API עם הפרמטרים / ים המתאימים ולקבל את התוצאות המבוקשות בצורה מהירה ביותר. נכון לעכשיו, ה- ipstack API מטפל ביותר משני מיליארד בקשות מדי יום והיא עדיין מגיבה כמעט באופן מיידי. באמצעות שותפות עם ספקי שירותי אינטרנט שונים, המוצר יכול לכסות כ -2 מיליון מיקומים ולמעלה ממאתיים אלף ערים ברחבי העולם. זה תומך גם בכתובות IPv4 וגם IPv6.
כיצד עובד מיקום גיאוגרפי
לפני שנמשיך הלאה, בואו נעצור בקצרהעיין במהירות כיצד נראה מיקום גיאוגרפי. כפי שנוח משם של ipstack, זה קשור לכתובות IP. ניתן להשוות כתובות IP - במידה מסוימת - לכתובות דואר. לכל מכשיר המחובר לאינטרנט כתובת IP ייחודית. אבל כתובות IP אלה אינן מוקצות רק לאקראי לכל מכשיר. יש בזה תחושה כלשהי. חלק מכתובת IP מזהה את המכשיר המחובר הפרט וחלק ממנו מזהה את הרשת שאליה הוא מחובר. וחלק הרשת עצמו מסודר באופן היררכי, דומה לעץ ספריית דיסק למחשב. (אני מקווה שהמהנדסים בקרב קוראינו יסלחו לי על הפשט יתר).
זה דומה לכתובת דואר עם רחובמספר, שם רחוב, עיר ובסופו של דבר מדינה. ובדיוק כמו שלדואר הבריטי אין מושג היכן נמצאת כתובת אמריקאית כלשהי, הוא ישלח דואר המחובר לארה"ב ל- USPS שידאג לניתוב הדואר למיקום הנכון. ובדיוק כמו שתוכלו להזין כמעט כל כתובת דואר בכלי כמו מפה של גוגל ולקבל את המיקום המתאים בדיוק, תוכלו לשאול בכלי דוגמת ה- ipstack API עם כתובת IP כדי לקבל את המיקום שלו.
עם זאת יש כמה מגבלות. למשל, לא תקבל את המיקום המדויק מכתובת ה- IP. מה שתקבל זה מה שמספק האינטרנט שמספק את כתובת ה- IP יכול לספק. לרוב זה לא מדויק בהרבה מהעיר או השכונה הכללית אם כי ספקים מסוימים מחזירים מידע רב יותר מאחרים. כמו כן, אם המשתמש תובע VPN כדי לגשת לאתר שלך, מה שתקבל ממבט כזה הוא המיקום של שרת ה- VPN שהוא משתמש בו.
התכונות העיקריות של ה- ipstack API
מפתחי ה- ipstack API בחרו להשתמש ב-גישה מודולרית עם מוצר זה. זה מורכב ממודולים שונים, שכל אחד מהם מחזיר מידע מסוג אחר. ישנם למשל מודולים של אזור זמן, מטבע או אפילו אבטחה. אתה בוחר באיזה מודול להשתמש באמצעות הפרמטרים המתאימים בעת שליחת הבקשה ל- API של ipstack.
ישנם כמה יתרונות לגישה זו. ראשית, זה מקל על הטיפול בתגובה. אם הייתה רק סוג אחד של בקשה המחזירה את כל הנתונים הזמינים אודות כתובת IP, הקוד של האתר שלך היה צריך לנתח את כל התשובה כדי להביא את כל המידע הדרוש לו. כמו כן, משלוח בקשות קטנות יותר - עם תגובות קטנות יותר - יכול לשפר את הביצועים.
בואו נסתכל עמוק יותר על כל אחד מהזמיניםמודול, כיצד להתקשר אליהם ונראה תגובתם הטיפוסית. זה ייתן לך סקירה די ברורה למה לצפות מכלי רב עוצמה זה.
מודול המיקום

המודול הבסיסי ביותר של ה- ipstack הוא ה-מודול מיקום. הוא מחזיר פרטים על המיקום הפיזי של כתובת ה- IP המסופקת בשאילתה. תקבל את המדינה של כתובת ה- IP, את השפה העיקרית או הרשמית שלה, כמו גם אמוג'י לדגל המדינה בו תוכל להשתמש כדי להתאים אישית את חווית המשתמש שלך.
להלן תגובה אופיינית לשאילתה ל- API של ipstack. החלק הראשון כלול בשאילתה כלשהי, ללא קשר למודול המבוקש:
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: "$"
מודול האבטחה

כנראה שלא פופולרי - או שימושי - כמו הקודםמודולים, מודול האבטחה עדיין מעניין. הוא מחזיר מידע על כמה היבטי אבטחה בחיבור הנכנס. לדוגמה, הוא יגיד לך האם ניתן לגשת לאתר דרך פרוקסי, ואם כן, סוג ה- proxy או שמא הבקשה הגיעה דרך רשת ה- 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
מודול אזור הזמן

מודול נוסף שיכול להועיל אליוהתאם אישית את חוויית המשתמש של מבקרי האתר שלך הוא מודול אזור הזמן. זה מחזיר כמה פרטים נוספים על - ניחשת נכון - את מבקרי האתר שלך. אחד המקומות שבהם תוכלו להשתמש בתכונה כזו באתרים העוסקים במידע רגיש לזמן. זה מאפשר לך להציג את השעה הנכונה על סמך מיקום המשתמשים שלך.
המודול מספק מידע כמו קיזוז 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 המקורית כמו גם לשם ספק שירותי האינטרנט. ובכן, זהו למעשה שמו של בעל ה- AS ולא ספק האינטרנט. ארגונים מסוימים רושמים מערכת אוטונומית משלהם, כפי שקורה בדוגמה למטה:
connection: Object{} asn: 395399 isp: "City of Montreal"
זה כנראה הפחות שימושי מכל המודולים אך חלקם ימצאו שימושי למטרות אנליטיות שונות.
עבודה עם ממשק ה- ipstack
בדקנו איזה מידע יכול להיותהוחזר על ידי ה- ipstack API, עכשיו זה הזמן לבדוק כיצד זה נקרא. ממשק ה- API של ipstack מציע שלושה סוגים שונים של שאילתות עם כל פרמטרים שונים. יש את בדיקת הסטנדרטים, בדיקת גורפים ומבט מבקש. בואו נראה כיצד הם שונים. זוהי תכונה נחמדה שכן, למשל, בקשת התפוצה מאפשרת לשלב מספר בקשות לאחת, ובכך להפחית את התקורה הכוללת ומאפשרת תוצאות מהירות יותר. בואו נסתכל עמוק יותר על כל סוג של בקשה.
בדיקה סטנדרטית
כפי שאפשר לנחש, בדיקת התקן היאזה הבסיסי ביותר. היא מחזירה את הפרטים אודות כתובת IP יחידה שאתה מספק כשאתה מתקשר ל- API של ipstack. זה די פשוט לשימוש וזה יעבוד עם כתובות 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 מרובות בבקשה יחידה. בדיוק כמו בדיקת התקן, אתה יכול לקבל נתונים הן על כתובות IPv4 והן על IPv6. אתה יכול אפילו לערבב את שני סוגי הכתובות בבקשה יחידה. פורמט הבקשה זהה לזה של מבט סטנדרטי למעט שאתה מציין כתובות 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?
ממשק ה- ipstack הוא, קרוב לוודאי, משהותשתלב באתר אינטרנט בזמן אמת. לדוגמה, ייתכן שתרצה להגיש תוכן שונה על סמך מיקום הלקוח. כדי להשיג זאת, אתה זקוק לממשק ה- API לביצוע מהיר בוער. כל עיכוב בתגובת ה- API יתרגם לעיכובים המציגים את הדף בפני הלקוח שלך, דבר שתרצה להימנע ממנו. הדבר נכון, לא משנה לשם מה אתה משתמש בנתוני המיקום. זו הסיבה שזמן התגובה של הכלי בו אתה משתמש הוא בעל חשיבות עליונה. בעוד שממשק API למיקום גיאוגרפי יכול לספק פונקציונליות נחוצה מאוד, אך כישלונו בביצוע יכול להשפיע הרסנית.
מסיבות אלה אתה צריך לבחור API עםזמן תגובה טוב. ביצענו חלק ניכר מהעבודה הקשה של בדיקת תרחישים שונים וביצענו בדיקות עם כתובות IP בודדות או מרובות, חלקן עם פרמטרים אופציונליים יותר, חלקם עם פחות. היינו די מרוצים מהתוצאות וקיבלנו זמן תגובה די עקבי של בערך 100 שניות, ללא קשר לבקשה. התגובה הייתה גם עקבית לאורך זמן ללא "שעות העומס" הנראות לעין כאשר הביצועים יסבלו וזה היה דומה גם לא משנה מאיפה השקנו את הבקשות. נראה ששרתי ה- ipstack בנויים לטפל בעומס שהם מקבלים. בסך הכל, נראה כי השימוש בממשק ה- API של ipstack בקושי השפיע על התגובה לאתר שנראה מנקודת מבטו של המשתמש.
תיעוד מוצר ותמיכה
לעתים קרובות אומרים שמוצר טוב באותה מידהכתיעוד שלה. אם זה נכון, ל- 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. הוא יכול לכלול בקשות חודשיות רבות ככל שתצטרך וכן פתרונות בהתאמה אישית שונים המבוססים על צרכיו הספציפיים של הלקוח.
לסיכום
ה- ipstack API הוא מוצר מצוין שיהיהמאפשר לך לתפוס כמה שיותר מהנתונים שתוכל לקבל מכתובת IP במהירות ובקלות. יש לו זמן תגובה מדהים, תיעוד מעולה ותמיכה טובה שמשלבים את זה לכדי ערך נהדר לכסף. כמו כן, עצם העובדה שמספר ענקיות אינטרנט משתמשות בה, היא כנראה עדות טובה לערך המוצר.
זה בהחלט מוצר שהייתי ממליץ עליואתה מסתכל על ניצול הנתונים שניתן לאסוף עבור כתובת ה- IP של מבקר האתר שלך. ומאחר שתוכנית חינמית - גם אם מוגבלת - זמינה, אין שום סיבה שלא תנסו לפחות לנסות ולבדוק בעצמכם מה היא יכולה לעשות עבורכם.
הערות