כדי לקבל מידע על מיקום גיאוגרפי לגבי כתובת IP ספציפית, עליך להשתמש בשירות מקוון כלשהו המספק את ה-API המתאים. מומלץ להשתמש בשירות ציבורי כלשהו כדי להימנע מהליך ההרשאה ומניהול מפתחות ה-API. שירות אחד כזה הוא FreeGeoIP.net.
הוא מספק HTTP API ציבורי לחיפוש במיקום גיאוגרפי של כתובות IP. הוא משתמש במסד נתונים של כתובות IP המשויכות לערים יחד עם מידע רלוונטי אחר כמו אזור זמן, קו רוחב וקווי אורך. זה מאוד שימושי.
השירות יכול לספק תוצאות חיפוש כ-JSON או XML. אז אם נשלב תלתל עם מנתח JSON כלשהו, נוכל לקבל את המידע הנדרש.
אני אשתמש במנתח ה-JSON האהוב עליי, jq:
זה מאוד קל ומהיר.
במקרה שלנו, השאילתה צריכה להיות כדלקמן:
|_+_|החלק 'json' כאן הוא פורמט הנתונים הרצוי. מלבד JSON, זה יכול להיות XML או CSV.
בוא נריץ את השאילתה עם curl ונראה את הפלט:
התוצאה היא פלט JSON גולמי שקשה לקרוא. כדי לשפר את המראה של ערכת התוצאות, הבה נשתמש בכלי jq. שלב אותו עם תלתל באופן הבא:
|_+_|הפלט יהיה קל יותר לקריאה:
באמצעות jq, אתה יכול לסנן את הפלט ולגרום לו להציג רק את השדות הנדרשים. הפקודה הבאה תציג רק את שם המדינה, קו הרוחב וקווי האורך:
|_+_|אתה יכול לשמור פקודה זו כסקריפט המעטפת הבא:
|_+_|בפעם הבאה שתצטרך לקבל מידע על מיקום גיאוגרפי, תוכל להפעיל את הסקריפט שלך כך:
|_+_|זהו זה.